!function (t, e) {
    function n(t) {
        var e = dt[t] = {};
        return Q.each(t.split(et), function (t, n) {
            e[n] = !0
        }), e
    }

    function r(t, n, r) {
        if (r === e && 1 === t.nodeType) {
            var i = "data-" + n.replace(gt, "-$1").toLowerCase();
            if (r = t.getAttribute(i), "string" == typeof r) {
                try {
                    r = "true" === r || "false" !== r && ("null" === r ? null : +r + "" === r ? +r : vt.test(r) ? Q.parseJSON(r) : r)
                } catch (o) {
                }
                Q.data(t, n, r)
            } else r = e
        }
        return r
    }

    function i(t) {
        var e;
        for (e in t) if (("data" !== e || !Q.isEmptyObject(t[e])) && "toJSON" !== e) return !1;
        return !0
    }

    function o() {
        return !1
    }

    function a() {
        return !0
    }

    function s(t) {
        return !t || !t.parentNode || 11 === t.parentNode.nodeType
    }

    function u(t, e) {
        do t = t[e]; while (t && 1 !== t.nodeType);
        return t
    }

    function c(t, e, n) {
        if (e = e || 0, Q.isFunction(e)) return Q.grep(t, function (t, r) {
            var i = !!e.call(t, r, t);
            return i === n
        });
        if (e.nodeType) return Q.grep(t, function (t, r) {
            return t === e === n
        });
        if ("string" == typeof e) {
            var r = Q.grep(t, function (t) {
                return 1 === t.nodeType
            });
            if (Rt.test(e)) return Q.filter(e, r, !n);
            e = Q.filter(e, r)
        }
        return Q.grep(t, function (t, r) {
            return Q.inArray(t, e) >= 0 === n
        })
    }

    function l(t) {
        var e = Ft.split("|"), n = t.createDocumentFragment();
        if (n.createElement) for (; e.length;) n.createElement(e.pop());
        return n
    }

    function f(t, e) {
        return t.getElementsByTagName(e)[0] || t.appendChild(t.ownerDocument.createElement(e))
    }

    function p(t, e) {
        if (1 === e.nodeType && Q.hasData(t)) {
            var n, r, i, o = Q._data(t), a = Q._data(e, o), s = o.events;
            if (s) {
                delete a.handle, a.events = {};
                for (n in s) for (r = 0, i = s[n].length; r < i; r++) Q.event.add(e, n, s[n][r])
            }
            a.data && (a.data = Q.extend({}, a.data))
        }
    }

    function h(t, e) {
        var n;
        1 === e.nodeType && (e.clearAttributes && e.clearAttributes(), e.mergeAttributes && e.mergeAttributes(t), n = e.nodeName.toLowerCase(), "object" === n ? (e.parentNode && (e.outerHTML = t.outerHTML), Q.support.html5Clone && t.innerHTML && !Q.trim(e.innerHTML) && (e.innerHTML = t.innerHTML)) : "input" === n && Vt.test(t.type) ? (e.defaultChecked = e.checked = t.checked, e.value !== t.value && (e.value = t.value)) : "option" === n ? e.selected = t.defaultSelected : "input" === n || "textarea" === n ? e.defaultValue = t.defaultValue : "script" === n && e.text !== t.text && (e.text = t.text), e.removeAttribute(Q.expando))
    }

    function d(t) {
        return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName("*") : "undefined" != typeof t.querySelectorAll ? t.querySelectorAll("*") : []
    }

    function v(t) {
        Vt.test(t.type) && (t.defaultChecked = t.checked)
    }

    function g(t, e) {
        if (e in t) return e;
        for (var n = e.charAt(0).toUpperCase() + e.slice(1), r = e, i = me.length; i--;) if (e = me[i] + n, e in t) return e;
        return r
    }

    function m(t, e) {
        return t = e || t, "none" === Q.css(t, "display") || !Q.contains(t.ownerDocument, t)
    }

    function y(t, e) {
        for (var n, r, i = [], o = 0, a = t.length; o < a; o++) n = t[o], n.style && (i[o] = Q._data(n, "olddisplay"), e ? (!i[o] && "none" === n.style.display && (n.style.display = ""), "" === n.style.display && m(n) && (i[o] = Q._data(n, "olddisplay", w(n.nodeName)))) : (r = ne(n, "display"), !i[o] && "none" !== r && Q._data(n, "olddisplay", r)));
        for (o = 0; o < a; o++) n = t[o], n.style && (e && "none" !== n.style.display && "" !== n.style.display || (n.style.display = e ? i[o] || "" : "none"));
        return t
    }

    function x(t, e, n) {
        var r = le.exec(e);
        return r ? Math.max(0, r[1] - (n || 0)) + (r[2] || "px") : e
    }

    function _(t, e, n, r) {
        for (var i = n === (r ? "border" : "content") ? 4 : "width" === e ? 1 : 0, o = 0; i < 4; i += 2) "margin" === n && (o += Q.css(t, n + ge[i], !0)), r ? ("content" === n && (o -= parseFloat(ne(t, "padding" + ge[i])) || 0), "margin" !== n && (o -= parseFloat(ne(t, "border" + ge[i] + "Width")) || 0)) : (o += parseFloat(ne(t, "padding" + ge[i])) || 0, "padding" !== n && (o += parseFloat(ne(t, "border" + ge[i] + "Width")) || 0));
        return o
    }

    function b(t, e, n) {
        var r = "width" === e ? t.offsetWidth : t.offsetHeight, i = !0,
            o = Q.support.boxSizing && "border-box" === Q.css(t, "boxSizing");
        if (r <= 0 || null == r) {
            if (r = ne(t, e), (r < 0 || null == r) && (r = t.style[e]), fe.test(r)) return r;
            i = o && (Q.support.boxSizingReliable || r === t.style[e]), r = parseFloat(r) || 0
        }
        return r + _(t, e, n || (o ? "border" : "content"), i) + "px"
    }

    function w(t) {
        if (he[t]) return he[t];
        var e = Q("<" + t + ">").appendTo(B.body), n = e.css("display");
        return e.remove(), "none" !== n && "" !== n || (re = B.body.appendChild(re || Q.extend(B.createElement("iframe"), {
            frameBorder: 0,
            width: 0,
            height: 0
        })), ie && re.createElement || (ie = (re.contentWindow || re.contentDocument).document, ie.write("<!doctype html><html><body>"), ie.close()), e = ie.body.appendChild(ie.createElement(t)), n = ne(e, "display"), B.body.removeChild(re)), he[t] = n, n
    }

    function T(t, e, n, r) {
        var i;
        if (Q.isArray(e)) Q.each(e, function (e, i) {
            n || _e.test(t) ? r(t, i) : T(t + "[" + ("object" == typeof i ? e : "") + "]", i, n, r)
        }); else if (n || "object" !== Q.type(e)) r(t, e); else for (i in e) T(t + "[" + i + "]", e[i], n, r)
    }

    function E(t) {
        return function (e, n) {
            "string" != typeof e && (n = e, e = "*");
            var r, i, o, a = e.toLowerCase().split(et), s = 0, u = a.length;
            if (Q.isFunction(n)) for (; s < u; s++) r = a[s], o = /^\+/.test(r), o && (r = r.substr(1) || "*"), i = t[r] = t[r] || [], i[o ? "unshift" : "push"](n)
        }
    }

    function N(t, n, r, i, o, a) {
        o = o || n.dataTypes[0], a = a || {}, a[o] = !0;
        for (var s, u = t[o], c = 0, l = u ? u.length : 0, f = t === Re; c < l && (f || !s); c++) s = u[c](n, r, i), "string" == typeof s && (!f || a[s] ? s = e : (n.dataTypes.unshift(s), s = N(t, n, r, i, s, a)));
        return (f || !s) && !a["*"] && (s = N(t, n, r, i, "*", a)), s
    }

    function A(t, n) {
        var r, i, o = Q.ajaxSettings.flatOptions || {};
        for (r in n) n[r] !== e && ((o[r] ? t : i || (i = {}))[r] = n[r]);
        i && Q.extend(!0, t, i)
    }

    function C(t, n, r) {
        var i, o, a, s, u = t.contents, c = t.dataTypes, l = t.responseFields;
        for (o in l) o in r && (n[l[o]] = r[o]);
        for (; "*" === c[0];) c.shift(), i === e && (i = t.mimeType || n.getResponseHeader("content-type"));
        if (i) for (o in u) if (u[o] && u[o].test(i)) {
            c.unshift(o);
            break
        }
        if (c[0] in r) a = c[0]; else {
            for (o in r) {
                if (!c[0] || t.converters[o + " " + c[0]]) {
                    a = o;
                    break
                }
                s || (s = o)
            }
            a = a || s
        }
        if (a) return a !== c[0] && c.unshift(a), r[a]
    }

    function S(t, e) {
        var n, r, i, o, a = t.dataTypes.slice(), s = a[0], u = {}, c = 0;
        if (t.dataFilter && (e = t.dataFilter(e, t.dataType)), a[1]) for (n in t.converters) u[n.toLowerCase()] = t.converters[n];
        for (; i = a[++c];) if ("*" !== i) {
            if ("*" !== s && s !== i) {
                if (n = u[s + " " + i] || u["* " + i], !n) for (r in u) if (o = r.split(" "), o[1] === i && (n = u[s + " " + o[0]] || u["* " + o[0]])) {
                    n === !0 ? n = u[r] : u[r] !== !0 && (i = o[0], a.splice(c--, 0, i));
                    break
                }
                if (n !== !0) if (n && t["throws"]) e = n(e); else try {
                    e = n(e)
                } catch (l) {
                    return {state: "parsererror", error: n ? l : "No conversion from " + s + " to " + i}
                }
            }
            s = i
        }
        return {state: "success", data: e}
    }

    function k() {
        try {
            return new t.XMLHttpRequest
        } catch (e) {
        }
    }

    function $() {
        try {
            return new t.ActiveXObject("Microsoft.XMLHTTP")
        } catch (e) {
        }
    }

    function j() {
        return setTimeout(function () {
            Je = e
        }, 0), Je = Q.now()
    }

    function O(t, e) {
        Q.each(e, function (e, n) {
            for (var r = (Ze[e] || []).concat(Ze["*"]), i = 0, o = r.length; i < o; i++) if (r[i].call(t, e, n)) return
        })
    }

    function D(t, e, n) {
        var r, i = 0, o = Qe.length, a = Q.Deferred().always(function () {
            delete s.elem
        }), s = function () {
            for (var e = Je || j(), n = Math.max(0, u.startTime + u.duration - e), r = 1 - (n / u.duration || 0), i = 0, o = u.tweens.length; i < o; i++) u.tweens[i].run(r);
            return a.notifyWith(t, [u, r, n]), r < 1 && o ? n : (a.resolveWith(t, [u]), !1)
        }, u = a.promise({
            elem: t,
            props: Q.extend({}, e),
            opts: Q.extend(!0, {specialEasing: {}}, n),
            originalProperties: e,
            originalOptions: n,
            startTime: Je || j(),
            duration: n.duration,
            tweens: [],
            createTween: function (e, n, r) {
                var i = Q.Tween(t, u.opts, e, n, u.opts.specialEasing[e] || u.opts.easing);
                return u.tweens.push(i), i
            },
            stop: function (e) {
                for (var n = 0, r = e ? u.tweens.length : 0; n < r; n++) u.tweens[n].run(1);
                return e ? a.resolveWith(t, [u, e]) : a.rejectWith(t, [u, e]), this
            }
        }), c = u.props;
        for (I(c, u.opts.specialEasing); i < o; i++) if (r = Qe[i].call(u, t, c, u.opts)) return r;
        return O(u, c), Q.isFunction(u.opts.start) && u.opts.start.call(t, u), Q.fx.timer(Q.extend(s, {
            anim: u,
            queue: u.opts.queue,
            elem: t
        })), u.progress(u.opts.progress).done(u.opts.done, u.opts.complete).fail(u.opts.fail).always(u.opts.always)
    }

    function I(t, e) {
        var n, r, i, o, a;
        for (n in t) if (r = Q.camelCase(n), i = e[r], o = t[n], Q.isArray(o) && (i = o[1], o = t[n] = o[0]), n !== r && (t[r] = o, delete t[n]), a = Q.cssHooks[r], a && "expand" in a) {
            o = a.expand(o), delete t[r];
            for (n in o) n in t || (t[n] = o[n], e[n] = i)
        } else e[r] = i
    }

    function M(t, e, n) {
        var r, i, o, a, s, u, c, l, f = this, p = t.style, h = {}, d = [], v = t.nodeType && m(t);
        n.queue || (c = Q._queueHooks(t, "fx"), null == c.unqueued && (c.unqueued = 0, l = c.empty.fire, c.empty.fire = function () {
            c.unqueued || l()
        }), c.unqueued++, f.always(function () {
            f.always(function () {
                c.unqueued--, Q.queue(t, "fx").length || c.empty.fire()
            })
        })), 1 === t.nodeType && ("height" in e || "width" in e) && (n.overflow = [p.overflow, p.overflowX, p.overflowY], "inline" === Q.css(t, "display") && "none" === Q.css(t, "float") && (Q.support.inlineBlockNeedsLayout && "inline" !== w(t.nodeName) ? p.zoom = 1 : p.display = "inline-block")), n.overflow && (p.overflow = "hidden", Q.support.shrinkWrapBlocks || f.done(function () {
            p.overflow = n.overflow[0], p.overflowX = n.overflow[1], p.overflowY = n.overflow[2]
        }));
        for (r in e) if (o = e[r], Ve.exec(o)) {
            if (delete e[r], o === (v ? "hide" : "show")) continue;
            d.push(r)
        }
        if (a = d.length) for (s = Q._data(t, "fxshow") || Q._data(t, "fxshow", {}), v ? Q(t).show() : f.done(function () {
            Q(t).hide()
        }), f.done(function () {
            var e;
            Q.removeData(t, "fxshow", !0);
            for (e in h) Q.style(t, e, h[e])
        }), r = 0; r < a; r++) i = d[r], u = f.createTween(i, v ? s[i] : 0), h[i] = s[i] || Q.style(t, i), i in s || (s[i] = u.start, v && (u.end = u.start, u.start = "width" === i || "height" === i ? 1 : 0))
    }

    function R(t, e, n, r, i) {
        return new R.prototype.init(t, e, n, r, i)
    }

    function L(t, e) {
        var n, r = {height: t}, i = 0;
        for (e = e ? 1 : 0; i < 4; i += 2 - e) n = ge[i], r["margin" + n] = r["padding" + n] = t;
        return e && (r.opacity = r.width = t), r
    }

    function P(t) {
        return Q.isWindow(t) ? t : 9 === t.nodeType && (t.defaultView || t.parentWindow)
    }

    var F, q, B = t.document, H = t.location, z = t.navigator, W = t.jQuery, U = t.$, G = Array.prototype.push,
        J = Array.prototype.slice, X = Array.prototype.indexOf, V = Object.prototype.toString,
        Y = Object.prototype.hasOwnProperty, K = String.prototype.trim, Q = function (t, e) {
            return new Q.fn.init(t, e, F)
        }, Z = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source, tt = /\S/, et = /\s+/,
        nt = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, rt = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
        it = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, ot = /^[\],:{}\s]*$/, at = /(?:^|:|,)(?:\s*\[)+/g,
        st = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
        ut = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g, ct = /^-ms-/, lt = /-([\da-z])/gi,
        ft = function (t, e) {
            return (e + "").toUpperCase()
        }, pt = function () {
            B.addEventListener ? (B.removeEventListener("DOMContentLoaded", pt, !1), Q.ready()) : "complete" === B.readyState && (B.detachEvent("onreadystatechange", pt), Q.ready())
        }, ht = {};
    Q.fn = Q.prototype = {
        constructor: Q, init: function (t, n, r) {
            var i, o, a;
            if (!t) return this;
            if (t.nodeType) return this.context = this[0] = t, this.length = 1, this;
            if ("string" == typeof t) {
                if (i = "<" === t.charAt(0) && ">" === t.charAt(t.length - 1) && t.length >= 3 ? [null, t, null] : rt.exec(t), i && (i[1] || !n)) {
                    if (i[1]) return n = n instanceof Q ? n[0] : n, a = n && n.nodeType ? n.ownerDocument || n : B, t = Q.parseHTML(i[1], a, !0), it.test(i[1]) && Q.isPlainObject(n) && this.attr.call(t, n, !0), Q.merge(this, t);
                    if (o = B.getElementById(i[2]), o && o.parentNode) {
                        if (o.id !== i[2]) return r.find(t);
                        this.length = 1, this[0] = o
                    }
                    return this.context = B, this.selector = t, this
                }
                return !n || n.jquery ? (n || r).find(t) : this.constructor(n).find(t)
            }
            return Q.isFunction(t) ? r.ready(t) : (t.selector !== e && (this.selector = t.selector, this.context = t.context), Q.makeArray(t, this))
        }, selector: "", jquery: "1.8.2", length: 0, size: function () {
            return this.length
        }, toArray: function () {
            return J.call(this)
        }, get: function (t) {
            return null == t ? this.toArray() : t < 0 ? this[this.length + t] : this[t]
        }, pushStack: function (t, e, n) {
            var r = Q.merge(this.constructor(), t);
            return r.prevObject = this, r.context = this.context, "find" === e ? r.selector = this.selector + (this.selector ? " " : "") + n : e && (r.selector = this.selector + "." + e + "(" + n + ")"), r
        }, each: function (t, e) {
            return Q.each(this, t, e)
        }, ready: function (t) {
            return Q.ready.promise().done(t), this
        }, eq: function (t) {
            return t = +t, t === -1 ? this.slice(t) : this.slice(t, t + 1)
        }, first: function () {
            return this.eq(0)
        }, last: function () {
            return this.eq(-1)
        }, slice: function () {
            return this.pushStack(J.apply(this, arguments), "slice", J.call(arguments).join(","))
        }, map: function (t) {
            return this.pushStack(Q.map(this, function (e, n) {
                return t.call(e, n, e)
            }))
        }, end: function () {
            return this.prevObject || this.constructor(null)
        }, push: G, sort: [].sort, splice: [].splice
    }, Q.fn.init.prototype = Q.fn, Q.extend = Q.fn.extend = function () {
        var t, n, r, i, o, a, s = arguments[0] || {}, u = 1, c = arguments.length, l = !1;
        for ("boolean" == typeof s && (l = s, s = arguments[1] || {}, u = 2), "object" != typeof s && !Q.isFunction(s) && (s = {}), c === u && (s = this, --u); u < c; u++) if (null != (t = arguments[u])) for (n in t) r = s[n], i = t[n], s !== i && (l && i && (Q.isPlainObject(i) || (o = Q.isArray(i))) ? (o ? (o = !1, a = r && Q.isArray(r) ? r : []) : a = r && Q.isPlainObject(r) ? r : {}, s[n] = Q.extend(l, a, i)) : i !== e && (s[n] = i));
        return s
    }, Q.extend({
        noConflict: function (e) {
            return t.$ === Q && (t.$ = U), e && t.jQuery === Q && (t.jQuery = W), Q
        }, isReady: !1, readyWait: 1, holdReady: function (t) {
            t ? Q.readyWait++ : Q.ready(!0)
        }, ready: function (t) {
            if (t === !0 ? !--Q.readyWait : !Q.isReady) {
                if (!B.body) return setTimeout(Q.ready, 1);
                Q.isReady = !0, t !== !0 && --Q.readyWait > 0 || (q.resolveWith(B, [Q]), Q.fn.trigger && Q(B).trigger("ready").off("ready"))
            }
        }, isFunction: function (t) {
            return "function" === Q.type(t)
        }, isArray: Array.isArray || function (t) {
            return "array" === Q.type(t)
        }, isWindow: function (t) {
            return null != t && t == t.window
        }, isNumeric: function (t) {
            return !isNaN(parseFloat(t)) && isFinite(t)
        }, type: function (t) {
            return null == t ? String(t) : ht[V.call(t)] || "object"
        }, isPlainObject: function (t) {
            if (!t || "object" !== Q.type(t) || t.nodeType || Q.isWindow(t)) return !1;
            try {
                if (t.constructor && !Y.call(t, "constructor") && !Y.call(t.constructor.prototype, "isPrototypeOf")) return !1
            } catch (n) {
                return !1
            }
            var r;
            for (r in t) ;
            return r === e || Y.call(t, r)
        }, isEmptyObject: function (t) {
            var e;
            for (e in t) return !1;
            return !0
        }, error: function (t) {
            throw new Error(t)
        }, parseHTML: function (t, e, n) {
            var r;
            return t && "string" == typeof t ? ("boolean" == typeof e && (n = e, e = 0), e = e || B, (r = it.exec(t)) ? [e.createElement(r[1])] : (r = Q.buildFragment([t], e, n ? null : []), Q.merge([], (r.cacheable ? Q.clone(r.fragment) : r.fragment).childNodes))) : null
        }, parseJSON: function (e) {
            return e && "string" == typeof e ? (e = Q.trim(e), t.JSON && t.JSON.parse ? t.JSON.parse(e) : ot.test(e.replace(st, "@").replace(ut, "]").replace(at, "")) ? new Function("return " + e)() : void Q.error("Invalid JSON: " + e)) : null
        }, parseXML: function (n) {
            var r, i;
            if (!n || "string" != typeof n) return null;
            try {
                t.DOMParser ? (i = new DOMParser, r = i.parseFromString(n, "text/xml")) : (r = new ActiveXObject("Microsoft.XMLDOM"), r.async = "false", r.loadXML(n))
            } catch (o) {
                r = e
            }
            return (!r || !r.documentElement || r.getElementsByTagName("parsererror").length) && Q.error("Invalid XML: " + n), r
        }, noop: function () {
        }, globalEval: function (e) {
            e && tt.test(e) && (t.execScript || function (e) {
                t.eval.call(t, e)
            })(e)
        }, camelCase: function (t) {
            return t.replace(ct, "ms-").replace(lt, ft)
        }, nodeName: function (t, e) {
            return t.nodeName && t.nodeName.toLowerCase() === e.toLowerCase()
        }, each: function (t, n, r) {
            var i, o = 0, a = t.length, s = a === e || Q.isFunction(t);
            if (r) if (s) {
                for (i in t) if (n.apply(t[i], r) === !1) break
            } else for (; o < a && n.apply(t[o++], r) !== !1;) ; else if (s) {
                for (i in t) if (n.call(t[i], i, t[i]) === !1) break
            } else for (; o < a && n.call(t[o], o, t[o++]) !== !1;) ;
            return t
        }, trim: K && !K.call("\ufeff ") ? function (t) {
            return null == t ? "" : K.call(t)
        } : function (t) {
            return null == t ? "" : (t + "").replace(nt, "")
        }, makeArray: function (t, e) {
            var n, r = e || [];
            return null != t && (n = Q.type(t), null == t.length || "string" === n || "function" === n || "regexp" === n || Q.isWindow(t) ? G.call(r, t) : Q.merge(r, t)), r
        }, inArray: function (t, e, n) {
            var r;
            if (e) {
                if (X) return X.call(e, t, n);
                for (r = e.length, n = n ? n < 0 ? Math.max(0, r + n) : n : 0; n < r; n++) if (n in e && e[n] === t) return n
            }
            return -1
        }, merge: function (t, n) {
            var r = n.length, i = t.length, o = 0;
            if ("number" == typeof r) for (; o < r; o++) t[i++] = n[o]; else for (; n[o] !== e;) t[i++] = n[o++];
            return t.length = i, t
        }, grep: function (t, e, n) {
            var r, i = [], o = 0, a = t.length;
            for (n = !!n; o < a; o++) r = !!e(t[o], o), n !== r && i.push(t[o]);
            return i
        }, map: function (t, n, r) {
            var i, o, a = [], s = 0, u = t.length,
                c = t instanceof Q || u !== e && "number" == typeof u && (u > 0 && t[0] && t[u - 1] || 0 === u || Q.isArray(t));
            if (c) for (; s < u; s++) i = n(t[s], s, r), null != i && (a[a.length] = i); else for (o in t) i = n(t[o], o, r), null != i && (a[a.length] = i);
            return a.concat.apply([], a)
        }, guid: 1, proxy: function (t, n) {
            var r, i, o;
            return "string" == typeof n && (r = t[n], n = t, t = r), Q.isFunction(t) ? (i = J.call(arguments, 2), o = function () {
                return t.apply(n, i.concat(J.call(arguments)))
            }, o.guid = t.guid = t.guid || Q.guid++, o) : e
        }, access: function (t, n, r, i, o, a, s) {
            var u, c = null == r, l = 0, f = t.length;
            if (r && "object" == typeof r) {
                for (l in r) Q.access(t, n, l, r[l], 1, a, i);
                o = 1
            } else if (i !== e) {
                if (u = s === e && Q.isFunction(i), c && (u ? (u = n, n = function (t, e, n) {
                    return u.call(Q(t), n)
                }) : (n.call(t, i), n = null)), n) for (; l < f; l++) n(t[l], r, u ? i.call(t[l], l, n(t[l], r)) : i, s);
                o = 1
            }
            return o ? t : c ? n.call(t) : f ? n(t[0], r) : a
        }, now: function () {
            return (new Date).getTime()
        }
    }), Q.ready.promise = function (e) {
        if (!q) if (q = Q.Deferred(), "complete" === B.readyState) setTimeout(Q.ready, 1); else if (B.addEventListener) B.addEventListener("DOMContentLoaded", pt, !1), t.addEventListener("load", Q.ready, !1); else {
            B.attachEvent("onreadystatechange", pt), t.attachEvent("onload", Q.ready);
            var n = !1;
            try {
                n = null == t.frameElement && B.documentElement
            } catch (r) {
            }
            n && n.doScroll && function i() {
                if (!Q.isReady) {
                    try {
                        n.doScroll("left")
                    } catch (t) {
                        return setTimeout(i, 50)
                    }
                    Q.ready()
                }
            }()
        }
        return q.promise(e)
    }, Q.each("Boolean Number String Function Array Date RegExp Object".split(" "), function (t, e) {
        ht["[object " + e + "]"] = e.toLowerCase()
    }), F = Q(B);
    var dt = {};
    Q.Callbacks = function (t) {
        t = "string" == typeof t ? dt[t] || n(t) : Q.extend({}, t);
        var r, i, o, a, s, u, c = [], l = !t.once && [], f = function (e) {
            for (r = t.memory && e, i = !0, u = a || 0, a = 0, s = c.length, o = !0; c && u < s; u++) if (c[u].apply(e[0], e[1]) === !1 && t.stopOnFalse) {
                r = !1;
                break
            }
            o = !1, c && (l ? l.length && f(l.shift()) : r ? c = [] : p.disable())
        }, p = {
            add: function () {
                if (c) {
                    var e = c.length;
                    !function n(e) {
                        Q.each(e, function (e, r) {
                            var i = Q.type(r);
                            "function" !== i || t.unique && p.has(r) ? r && r.length && "string" !== i && n(r) : c.push(r)
                        })
                    }(arguments), o ? s = c.length : r && (a = e, f(r))
                }
                return this
            }, remove: function () {
                return c && Q.each(arguments, function (t, e) {
                    for (var n; (n = Q.inArray(e, c, n)) > -1;) c.splice(n, 1), o && (n <= s && s--, n <= u && u--)
                }), this
            }, has: function (t) {
                return Q.inArray(t, c) > -1
            }, empty: function () {
                return c = [], this
            }, disable: function () {
                return c = l = r = e, this
            }, disabled: function () {
                return !c
            }, lock: function () {
                return l = e, r || p.disable(), this
            }, locked: function () {
                return !l
            }, fireWith: function (t, e) {
                return e = e || [], e = [t, e.slice ? e.slice() : e], c && (!i || l) && (o ? l.push(e) : f(e)), this
            }, fire: function () {
                return p.fireWith(this, arguments), this
            }, fired: function () {
                return !!i
            }
        };
        return p
    }, Q.extend({
        Deferred: function (t) {
            var e = [["resolve", "done", Q.Callbacks("once memory"), "resolved"], ["reject", "fail", Q.Callbacks("once memory"), "rejected"], ["notify", "progress", Q.Callbacks("memory")]],
                n = "pending", r = {
                    state: function () {
                        return n
                    }, always: function () {
                        return i.done(arguments).fail(arguments), this
                    }, then: function () {
                        var t = arguments;
                        return Q.Deferred(function (n) {
                            Q.each(e, function (e, r) {
                                var o = r[0], a = t[e];
                                i[r[1]](Q.isFunction(a) ? function () {
                                    var t = a.apply(this, arguments);
                                    t && Q.isFunction(t.promise) ? t.promise().done(n.resolve).fail(n.reject).progress(n.notify) : n[o + "With"](this === i ? n : this, [t])
                                } : n[o])
                            }), t = null
                        }).promise()
                    }, promise: function (t) {
                        return null != t ? Q.extend(t, r) : r
                    }
                }, i = {};
            return r.pipe = r.then, Q.each(e, function (t, o) {
                var a = o[2], s = o[3];
                r[o[1]] = a.add, s && a.add(function () {
                    n = s
                }, e[1 ^ t][2].disable, e[2][2].lock), i[o[0]] = a.fire, i[o[0] + "With"] = a.fireWith
            }), r.promise(i), t && t.call(i, i), i
        }, when: function (t) {
            var e, n, r, i = 0, o = J.call(arguments), a = o.length,
                s = 1 !== a || t && Q.isFunction(t.promise) ? a : 0, u = 1 === s ? t : Q.Deferred(),
                c = function (t, n, r) {
                    return function (i) {
                        n[t] = this, r[t] = arguments.length > 1 ? J.call(arguments) : i, r === e ? u.notifyWith(n, r) : --s || u.resolveWith(n, r)
                    }
                };
            if (a > 1) for (e = new Array(a), n = new Array(a), r = new Array(a); i < a; i++) o[i] && Q.isFunction(o[i].promise) ? o[i].promise().done(c(i, r, o)).fail(u.reject).progress(c(i, n, e)) : --s;
            return s || u.resolveWith(r, o), u.promise()
        }
    }), Q.support = function () {
        var e, n, r, i, o, a, s, u, c, l, f, p = B.createElement("div");
        if (p.setAttribute("className", "t"), p.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", n = p.getElementsByTagName("*"), r = p.getElementsByTagName("a")[0], r.style.cssText = "top:1px;float:left;opacity:.5", !n || !n.length) return {};
        i = B.createElement("select"), o = i.appendChild(B.createElement("option")), a = p.getElementsByTagName("input")[0], e = {
            leadingWhitespace: 3 === p.firstChild.nodeType,
            tbody: !p.getElementsByTagName("tbody").length,
            htmlSerialize: !!p.getElementsByTagName("link").length,
            style: /top/.test(r.getAttribute("style")),
            hrefNormalized: "/a" === r.getAttribute("href"),
            opacity: /^0.5/.test(r.style.opacity),
            cssFloat: !!r.style.cssFloat,
            checkOn: "on" === a.value,
            optSelected: o.selected,
            getSetAttribute: "t" !== p.className,
            enctype: !!B.createElement("form").enctype,
            html5Clone: "<:nav></:nav>" !== B.createElement("nav").cloneNode(!0).outerHTML,
            boxModel: "CSS1Compat" === B.compatMode,
            submitBubbles: !0,
            changeBubbles: !0,
            focusinBubbles: !1,
            deleteExpando: !0,
            noCloneEvent: !0,
            inlineBlockNeedsLayout: !1,
            shrinkWrapBlocks: !1,
            reliableMarginRight: !0,
            boxSizingReliable: !0,
            pixelPosition: !1
        }, a.checked = !0, e.noCloneChecked = a.cloneNode(!0).checked, i.disabled = !0, e.optDisabled = !o.disabled;
        try {
            delete p.test
        } catch (h) {
            e.deleteExpando = !1
        }
        if (!p.addEventListener && p.attachEvent && p.fireEvent && (p.attachEvent("onclick", f = function () {
            e.noCloneEvent = !1
        }), p.cloneNode(!0).fireEvent("onclick"), p.detachEvent("onclick", f)), a = B.createElement("input"), a.value = "t", a.setAttribute("type", "radio"), e.radioValue = "t" === a.value, a.setAttribute("checked", "checked"), a.setAttribute("name", "t"), p.appendChild(a), s = B.createDocumentFragment(), s.appendChild(p.lastChild), e.checkClone = s.cloneNode(!0).cloneNode(!0).lastChild.checked, e.appendChecked = a.checked, s.removeChild(a), s.appendChild(p), p.attachEvent) for (c in {
            submit: !0,
            change: !0,
            focusin: !0
        }) u = "on" + c, l = u in p, l || (p.setAttribute(u, "return;"), l = "function" == typeof p[u]), e[c + "Bubbles"] = l;
        return Q(function () {
            var n, r, i, o, a = "padding:0;margin:0;border:0;display:block;overflow:hidden;",
                s = B.getElementsByTagName("body")[0];
            s && (n = B.createElement("div"), n.style.cssText = "visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px", s.insertBefore(n, s.firstChild), r = B.createElement("div"), n.appendChild(r), r.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", i = r.getElementsByTagName("td"), i[0].style.cssText = "padding:0;margin:0;border:0;display:none", l = 0 === i[0].offsetHeight, i[0].style.display = "", i[1].style.display = "none", e.reliableHiddenOffsets = l && 0 === i[0].offsetHeight, r.innerHTML = "", r.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;", e.boxSizing = 4 === r.offsetWidth, e.doesNotIncludeMarginInBodyOffset = 1 !== s.offsetTop, t.getComputedStyle && (e.pixelPosition = "1%" !== (t.getComputedStyle(r, null) || {}).top, e.boxSizingReliable = "4px" === (t.getComputedStyle(r, null) || {width: "4px"}).width, o = B.createElement("div"), o.style.cssText = r.style.cssText = a, o.style.marginRight = o.style.width = "0", r.style.width = "1px", r.appendChild(o), e.reliableMarginRight = !parseFloat((t.getComputedStyle(o, null) || {}).marginRight)), "undefined" != typeof r.style.zoom && (r.innerHTML = "", r.style.cssText = a + "width:1px;padding:1px;display:inline;zoom:1", e.inlineBlockNeedsLayout = 3 === r.offsetWidth, r.style.display = "block", r.style.overflow = "visible", r.innerHTML = "<div></div>", r.firstChild.style.width = "5px", e.shrinkWrapBlocks = 3 !== r.offsetWidth, n.style.zoom = 1), s.removeChild(n), n = r = i = o = null)
        }), s.removeChild(p), n = r = i = o = a = s = p = null, e
    }();
    var vt = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, gt = /([A-Z])/g;
    Q.extend({
        cache: {},
        deletedIds: [],
        uuid: 0,
        expando: "jQuery" + (Q.fn.jquery + Math.random()).replace(/\D/g, ""),
        noData: {embed: !0, object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", applet: !0},
        hasData: function (t) {
            return t = t.nodeType ? Q.cache[t[Q.expando]] : t[Q.expando], !!t && !i(t)
        },
        data: function (t, n, r, i) {
            if (Q.acceptData(t)) {
                var o, a, s = Q.expando, u = "string" == typeof n, c = t.nodeType, l = c ? Q.cache : t,
                    f = c ? t[s] : t[s] && s;
                if (f && l[f] && (i || l[f].data) || !u || r !== e) return f || (c ? t[s] = f = Q.deletedIds.pop() || Q.guid++ : f = s), l[f] || (l[f] = {}, c || (l[f].toJSON = Q.noop)), "object" != typeof n && "function" != typeof n || (i ? l[f] = Q.extend(l[f], n) : l[f].data = Q.extend(l[f].data, n)), o = l[f], i || (o.data || (o.data = {}), o = o.data), r !== e && (o[Q.camelCase(n)] = r), u ? (a = o[n], null == a && (a = o[Q.camelCase(n)])) : a = o, a
            }
        },
        removeData: function (t, e, n) {
            if (Q.acceptData(t)) {
                var r, o, a, s = t.nodeType, u = s ? Q.cache : t, c = s ? t[Q.expando] : Q.expando;
                if (u[c]) {
                    if (e && (r = n ? u[c] : u[c].data)) {
                        Q.isArray(e) || (e in r ? e = [e] : (e = Q.camelCase(e), e = e in r ? [e] : e.split(" ")));
                        for (o = 0, a = e.length; o < a; o++) delete r[e[o]];
                        if (!(n ? i : Q.isEmptyObject)(r)) return
                    }
                    (n || (delete u[c].data, i(u[c]))) && (s ? Q.cleanData([t], !0) : Q.support.deleteExpando || u != u.window ? delete u[c] : u[c] = null)
                }
            }
        },
        _data: function (t, e, n) {
            return Q.data(t, e, n, !0)
        },
        acceptData: function (t) {
            var e = t.nodeName && Q.noData[t.nodeName.toLowerCase()];
            return !e || e !== !0 && t.getAttribute("classid") === e
        }
    }), Q.fn.extend({
        data: function (t, n) {
            var i, o, a, s, u, c = this[0], l = 0, f = null;
            if (t === e) {
                if (this.length && (f = Q.data(c), 1 === c.nodeType && !Q._data(c, "parsedAttrs"))) {
                    for (a = c.attributes, u = a.length; l < u; l++) s = a[l].name, s.indexOf("data-") || (s = Q.camelCase(s.substring(5)), r(c, s, f[s]));
                    Q._data(c, "parsedAttrs", !0)
                }
                return f
            }
            return "object" == typeof t ? this.each(function () {
                Q.data(this, t)
            }) : (i = t.split(".", 2), i[1] = i[1] ? "." + i[1] : "", o = i[1] + "!", Q.access(this, function (n) {
                return n === e ? (f = this.triggerHandler("getData" + o, [i[0]]), f === e && c && (f = Q.data(c, t), f = r(c, t, f)), f === e && i[1] ? this.data(i[0]) : f) : (i[1] = n, void this.each(function () {
                    var e = Q(this);
                    e.triggerHandler("setData" + o, i), Q.data(this, t, n), e.triggerHandler("changeData" + o, i)
                }))
            }, null, n, arguments.length > 1, null, !1))
        }, removeData: function (t) {
            return this.each(function () {
                Q.removeData(this, t)
            })
        }
    }), Q.extend({
        queue: function (t, e, n) {
            var r;
            if (t) return e = (e || "fx") + "queue", r = Q._data(t, e), n && (!r || Q.isArray(n) ? r = Q._data(t, e, Q.makeArray(n)) : r.push(n)), r || []
        }, dequeue: function (t, e) {
            e = e || "fx";
            var n = Q.queue(t, e), r = n.length, i = n.shift(), o = Q._queueHooks(t, e), a = function () {
                Q.dequeue(t, e)
            };
            "inprogress" === i && (i = n.shift(), r--), i && ("fx" === e && n.unshift("inprogress"), delete o.stop, i.call(t, a, o)), !r && o && o.empty.fire()
        }, _queueHooks: function (t, e) {
            var n = e + "queueHooks";
            return Q._data(t, n) || Q._data(t, n, {
                empty: Q.Callbacks("once memory").add(function () {
                    Q.removeData(t, e + "queue", !0), Q.removeData(t, n, !0)
                })
            })
        }
    }), Q.fn.extend({
        queue: function (t, n) {
            var r = 2;
            return "string" != typeof t && (n = t, t = "fx", r--), arguments.length < r ? Q.queue(this[0], t) : n === e ? this : this.each(function () {
                var e = Q.queue(this, t, n);
                Q._queueHooks(this, t), "fx" === t && "inprogress" !== e[0] && Q.dequeue(this, t)
            })
        }, dequeue: function (t) {
            return this.each(function () {
                Q.dequeue(this, t)
            })
        }, delay: function (t, e) {
            return t = Q.fx ? Q.fx.speeds[t] || t : t, e = e || "fx", this.queue(e, function (e, n) {
                var r = setTimeout(e, t);
                n.stop = function () {
                    clearTimeout(r)
                }
            })
        }, clearQueue: function (t) {
            return this.queue(t || "fx", [])
        }, promise: function (t, n) {
            var r, i = 1, o = Q.Deferred(), a = this, s = this.length, u = function () {
                --i || o.resolveWith(a, [a])
            };
            for ("string" != typeof t && (n = t, t = e), t = t || "fx"; s--;) r = Q._data(a[s], t + "queueHooks"), r && r.empty && (i++, r.empty.add(u));
            return u(), o.promise(n)
        }
    });
    var mt, yt, xt, _t = /[\t\r\n]/g, bt = /\r/g, wt = /^(?:button|input)$/i,
        Tt = /^(?:button|input|object|select|textarea)$/i, Et = /^a(?:rea|)$/i,
        Nt = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
        At = Q.support.getSetAttribute;
    Q.fn.extend({
        attr: function (t, e) {
            return Q.access(this, Q.attr, t, e, arguments.length > 1)
        }, removeAttr: function (t) {
            return this.each(function () {
                Q.removeAttr(this, t)
            })
        }, prop: function (t, e) {
            return Q.access(this, Q.prop, t, e, arguments.length > 1)
        }, removeProp: function (t) {
            return t = Q.propFix[t] || t, this.each(function () {
                try {
                    this[t] = e, delete this[t]
                } catch (n) {
                }
            })
        }, addClass: function (t) {
            var e, n, r, i, o, a, s;
            if (Q.isFunction(t)) return this.each(function (e) {
                Q(this).addClass(t.call(this, e, this.className))
            });
            if (t && "string" == typeof t) for (e = t.split(et), n = 0, r = this.length; n < r; n++) if (i = this[n], 1 === i.nodeType) if (i.className || 1 !== e.length) {
                for (o = " " + i.className + " ", a = 0, s = e.length; a < s; a++) o.indexOf(" " + e[a] + " ") < 0 && (o += e[a] + " ");
                i.className = Q.trim(o)
            } else i.className = t;
            return this
        }, removeClass: function (t) {
            var n, r, i, o, a, s, u;
            if (Q.isFunction(t)) return this.each(function (e) {
                Q(this).removeClass(t.call(this, e, this.className))
            });
            if (t && "string" == typeof t || t === e) for (n = (t || "").split(et), s = 0, u = this.length; s < u; s++) if (i = this[s], 1 === i.nodeType && i.className) {
                for (r = (" " + i.className + " ").replace(_t, " "), o = 0, a = n.length; o < a; o++) for (; r.indexOf(" " + n[o] + " ") >= 0;) r = r.replace(" " + n[o] + " ", " ");
                i.className = t ? Q.trim(r) : ""
            }
            return this
        }, toggleClass: function (t, e) {
            var n = typeof t, r = "boolean" == typeof e;
            return Q.isFunction(t) ? this.each(function (n) {
                Q(this).toggleClass(t.call(this, n, this.className, e), e)
            }) : this.each(function () {
                if ("string" === n) for (var i, o = 0, a = Q(this), s = e, u = t.split(et); i = u[o++];) s = r ? s : !a.hasClass(i), a[s ? "addClass" : "removeClass"](i); else "undefined" !== n && "boolean" !== n || (this.className && Q._data(this, "__className__", this.className), this.className = this.className || t === !1 ? "" : Q._data(this, "__className__") || "")
            })
        }, hasClass: function (t) {
            for (var e = " " + t + " ", n = 0, r = this.length; n < r; n++) if (1 === this[n].nodeType && (" " + this[n].className + " ").replace(_t, " ").indexOf(e) >= 0) return !0;
            return !1
        }, val: function (t) {
            var n, r, i, o = this[0];
            {
                if (arguments.length) return i = Q.isFunction(t), this.each(function (r) {
                    var o, a = Q(this);
                    1 === this.nodeType && (o = i ? t.call(this, r, a.val()) : t, null == o ? o = "" : "number" == typeof o ? o += "" : Q.isArray(o) && (o = Q.map(o, function (t) {
                        return null == t ? "" : t + ""
                    })), n = Q.valHooks[this.type] || Q.valHooks[this.nodeName.toLowerCase()], n && "set" in n && n.set(this, o, "value") !== e || (this.value = o))
                });
                if (o) return n = Q.valHooks[o.type] || Q.valHooks[o.nodeName.toLowerCase()], n && "get" in n && (r = n.get(o, "value")) !== e ? r : (r = o.value, "string" == typeof r ? r.replace(bt, "") : null == r ? "" : r)
            }
        }
    }), Q.extend({
        valHooks: {
            option: {
                get: function (t) {
                    var e = t.attributes.value;
                    return !e || e.specified ? t.value : t.text
                }
            }, select: {
                get: function (t) {
                    var e, n, r, i, o = t.selectedIndex, a = [], s = t.options, u = "select-one" === t.type;
                    if (o < 0) return null;
                    for (n = u ? o : 0, r = u ? o + 1 : s.length; n < r; n++) if (i = s[n], i.selected && (Q.support.optDisabled ? !i.disabled : null === i.getAttribute("disabled")) && (!i.parentNode.disabled || !Q.nodeName(i.parentNode, "optgroup"))) {
                        if (e = Q(i).val(), u) return e;
                        a.push(e)
                    }
                    return u && !a.length && s.length ? Q(s[o]).val() : a
                }, set: function (t, e) {
                    var n = Q.makeArray(e);
                    return Q(t).find("option").each(function () {
                        this.selected = Q.inArray(Q(this).val(), n) >= 0
                    }), n.length || (t.selectedIndex = -1), n
                }
            }
        },
        attrFn: {},
        attr: function (t, n, r, i) {
            var o, a, s, u = t.nodeType;
            if (t && 3 !== u && 8 !== u && 2 !== u) return i && Q.isFunction(Q.fn[n]) ? Q(t)[n](r) : "undefined" == typeof t.getAttribute ? Q.prop(t, n, r) : (s = 1 !== u || !Q.isXMLDoc(t), s && (n = n.toLowerCase(), a = Q.attrHooks[n] || (Nt.test(n) ? yt : mt)), r !== e ? null === r ? void Q.removeAttr(t, n) : a && "set" in a && s && (o = a.set(t, r, n)) !== e ? o : (t.setAttribute(n, r + ""), r) : a && "get" in a && s && null !== (o = a.get(t, n)) ? o : (o = t.getAttribute(n), null === o ? e : o))
        },
        removeAttr: function (t, e) {
            var n, r, i, o, a = 0;
            if (e && 1 === t.nodeType) for (r = e.split(et); a < r.length; a++) i = r[a], i && (n = Q.propFix[i] || i, o = Nt.test(i), o || Q.attr(t, i, ""), t.removeAttribute(At ? i : n), o && n in t && (t[n] = !1))
        },
        attrHooks: {
            type: {
                set: function (t, e) {
                    if (wt.test(t.nodeName) && t.parentNode) Q.error("type property can't be changed"); else if (!Q.support.radioValue && "radio" === e && Q.nodeName(t, "input")) {
                        var n = t.value;
                        return t.setAttribute("type", e), n && (t.value = n), e
                    }
                }
            }, value: {
                get: function (t, e) {
                    return mt && Q.nodeName(t, "button") ? mt.get(t, e) : e in t ? t.value : null
                }, set: function (t, e, n) {
                    return mt && Q.nodeName(t, "button") ? mt.set(t, e, n) : void (t.value = e)
                }
            }
        },
        propFix: {
            tabindex: "tabIndex",
            readonly: "readOnly",
            "for": "htmlFor",
            "class": "className",
            maxlength: "maxLength",
            cellspacing: "cellSpacing",
            cellpadding: "cellPadding",
            rowspan: "rowSpan",
            colspan: "colSpan",
            usemap: "useMap",
            frameborder: "frameBorder",
            contenteditable: "contentEditable"
        },
        prop: function (t, n, r) {
            var i, o, a, s = t.nodeType;
            if (t && 3 !== s && 8 !== s && 2 !== s) return a = 1 !== s || !Q.isXMLDoc(t), a && (n = Q.propFix[n] || n, o = Q.propHooks[n]), r !== e ? o && "set" in o && (i = o.set(t, r, n)) !== e ? i : t[n] = r : o && "get" in o && null !== (i = o.get(t, n)) ? i : t[n]
        },
        propHooks: {
            tabIndex: {
                get: function (t) {
                    var n = t.getAttributeNode("tabindex");
                    return n && n.specified ? parseInt(n.value, 10) : Tt.test(t.nodeName) || Et.test(t.nodeName) && t.href ? 0 : e
                }
            }
        }
    }), yt = {
        get: function (t, n) {
            var r, i = Q.prop(t, n);
            return i === !0 || "boolean" != typeof i && (r = t.getAttributeNode(n)) && r.nodeValue !== !1 ? n.toLowerCase() : e
        }, set: function (t, e, n) {
            var r;
            return e === !1 ? Q.removeAttr(t, n) : (r = Q.propFix[n] || n, r in t && (t[r] = !0), t.setAttribute(n, n.toLowerCase())), n
        }
    }, At || (xt = {name: !0, id: !0, coords: !0}, mt = Q.valHooks.button = {
        get: function (t, n) {
            var r;
            return r = t.getAttributeNode(n), r && (xt[n] ? "" !== r.value : r.specified) ? r.value : e
        }, set: function (t, e, n) {
            var r = t.getAttributeNode(n);
            return r || (r = B.createAttribute(n), t.setAttributeNode(r)), r.value = e + ""
        }
    }, Q.each(["width", "height"], function (t, e) {
        Q.attrHooks[e] = Q.extend(Q.attrHooks[e], {
            set: function (t, n) {
                if ("" === n) return t.setAttribute(e, "auto"),
                    n
            }
        })
    }), Q.attrHooks.contenteditable = {
        get: mt.get, set: function (t, e, n) {
            "" === e && (e = "false"), mt.set(t, e, n)
        }
    }), Q.support.hrefNormalized || Q.each(["href", "src", "width", "height"], function (t, n) {
        Q.attrHooks[n] = Q.extend(Q.attrHooks[n], {
            get: function (t) {
                var r = t.getAttribute(n, 2);
                return null === r ? e : r
            }
        })
    }), Q.support.style || (Q.attrHooks.style = {
        get: function (t) {
            return t.style.cssText.toLowerCase() || e
        }, set: function (t, e) {
            return t.style.cssText = e + ""
        }
    }), Q.support.optSelected || (Q.propHooks.selected = Q.extend(Q.propHooks.selected, {
        get: function (t) {
            var e = t.parentNode;
            return e && (e.selectedIndex, e.parentNode && e.parentNode.selectedIndex), null
        }
    })), Q.support.enctype || (Q.propFix.enctype = "encoding"), Q.support.checkOn || Q.each(["radio", "checkbox"], function () {
        Q.valHooks[this] = {
            get: function (t) {
                return null === t.getAttribute("value") ? "on" : t.value
            }
        }
    }), Q.each(["radio", "checkbox"], function () {
        Q.valHooks[this] = Q.extend(Q.valHooks[this], {
            set: function (t, e) {
                if (Q.isArray(e)) return t.checked = Q.inArray(Q(t).val(), e) >= 0
            }
        })
    });
    var Ct = /^(?:textarea|input|select)$/i, St = /^([^\.]*|)(?:\.(.+)|)$/, kt = /(?:^|\s)hover(\.\S+|)\b/, $t = /^key/,
        jt = /^(?:mouse|contextmenu)|click/, Ot = /^(?:focusinfocus|focusoutblur)$/, Dt = function (t) {
            return Q.event.special.hover ? t : t.replace(kt, "mouseenter$1 mouseleave$1")
        };
    Q.event = {
        add: function (t, n, r, i, o) {
            var a, s, u, c, l, f, p, h, d, v, g;
            if (3 !== t.nodeType && 8 !== t.nodeType && n && r && (a = Q._data(t))) {
                for (r.handler && (d = r, r = d.handler, o = d.selector), r.guid || (r.guid = Q.guid++), u = a.events, u || (a.events = u = {}), s = a.handle, s || (a.handle = s = function (t) {
                    return "undefined" == typeof Q || t && Q.event.triggered === t.type ? e : Q.event.dispatch.apply(s.elem, arguments)
                }, s.elem = t), n = Q.trim(Dt(n)).split(" "), c = 0; c < n.length; c++) l = St.exec(n[c]) || [], f = l[1], p = (l[2] || "").split(".").sort(), g = Q.event.special[f] || {}, f = (o ? g.delegateType : g.bindType) || f, g = Q.event.special[f] || {}, h = Q.extend({
                    type: f,
                    origType: l[1],
                    data: i,
                    handler: r,
                    guid: r.guid,
                    selector: o,
                    needsContext: o && Q.expr.match.needsContext.test(o),
                    namespace: p.join(".")
                }, d), v = u[f], v || (v = u[f] = [], v.delegateCount = 0, g.setup && g.setup.call(t, i, p, s) !== !1 || (t.addEventListener ? t.addEventListener(f, s, !1) : t.attachEvent && t.attachEvent("on" + f, s))), g.add && (g.add.call(t, h), h.handler.guid || (h.handler.guid = r.guid)), o ? v.splice(v.delegateCount++, 0, h) : v.push(h), Q.event.global[f] = !0;
                t = null
            }
        },
        global: {},
        remove: function (t, e, n, r, i) {
            var o, a, s, u, c, l, f, p, h, d, v, g = Q.hasData(t) && Q._data(t);
            if (g && (p = g.events)) {
                for (e = Q.trim(Dt(e || "")).split(" "), o = 0; o < e.length; o++) if (a = St.exec(e[o]) || [], s = u = a[1], c = a[2], s) {
                    for (h = Q.event.special[s] || {}, s = (r ? h.delegateType : h.bindType) || s, d = p[s] || [], l = d.length, c = c ? new RegExp("(^|\\.)" + c.split(".").sort().join("\\.(?:.*\\.|)") + "(\\.|$)") : null, f = 0; f < d.length; f++) v = d[f], (i || u === v.origType) && (!n || n.guid === v.guid) && (!c || c.test(v.namespace)) && (!r || r === v.selector || "**" === r && v.selector) && (d.splice(f--, 1), v.selector && d.delegateCount--, h.remove && h.remove.call(t, v));
                    0 === d.length && l !== d.length && ((!h.teardown || h.teardown.call(t, c, g.handle) === !1) && Q.removeEvent(t, s, g.handle), delete p[s])
                } else for (s in p) Q.event.remove(t, s + e[o], n, r, !0);
                Q.isEmptyObject(p) && (delete g.handle, Q.removeData(t, "events", !0))
            }
        },
        customEvent: {getData: !0, setData: !0, changeData: !0},
        trigger: function (n, r, i, o) {
            if (!i || 3 !== i.nodeType && 8 !== i.nodeType) {
                var a, s, u, c, l, f, p, h, d, v, g = n.type || n, m = [];
                if (Ot.test(g + Q.event.triggered)) return;
                if (g.indexOf("!") >= 0 && (g = g.slice(0, -1), s = !0), g.indexOf(".") >= 0 && (m = g.split("."), g = m.shift(), m.sort()), (!i || Q.event.customEvent[g]) && !Q.event.global[g]) return;
                if (n = "object" == typeof n ? n[Q.expando] ? n : new Q.Event(g, n) : new Q.Event(g), n.type = g, n.isTrigger = !0, n.exclusive = s, n.namespace = m.join("."), n.namespace_re = n.namespace ? new RegExp("(^|\\.)" + m.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, f = g.indexOf(":") < 0 ? "on" + g : "", !i) {
                    a = Q.cache;
                    for (u in a) a[u].events && a[u].events[g] && Q.event.trigger(n, r, a[u].handle.elem, !0);
                    return
                }
                if (n.result = e, n.target || (n.target = i), r = null != r ? Q.makeArray(r) : [], r.unshift(n), p = Q.event.special[g] || {}, p.trigger && p.trigger.apply(i, r) === !1) return;
                if (d = [[i, p.bindType || g]], !o && !p.noBubble && !Q.isWindow(i)) {
                    for (v = p.delegateType || g, c = Ot.test(v + g) ? i : i.parentNode, l = i; c; c = c.parentNode) d.push([c, v]), l = c;
                    l === (i.ownerDocument || B) && d.push([l.defaultView || l.parentWindow || t, v])
                }
                for (u = 0; u < d.length && !n.isPropagationStopped(); u++) c = d[u][0], n.type = d[u][1], h = (Q._data(c, "events") || {})[n.type] && Q._data(c, "handle"), h && h.apply(c, r), h = f && c[f], h && Q.acceptData(c) && h.apply && h.apply(c, r) === !1 && n.preventDefault();
                return n.type = g, !o && !n.isDefaultPrevented() && (!p._default || p._default.apply(i.ownerDocument, r) === !1) && ("click" !== g || !Q.nodeName(i, "a")) && Q.acceptData(i) && f && i[g] && ("focus" !== g && "blur" !== g || 0 !== n.target.offsetWidth) && !Q.isWindow(i) && (l = i[f], l && (i[f] = null), Q.event.triggered = g, i[g](), Q.event.triggered = e, l && (i[f] = l)), n.result
            }
        },
        dispatch: function (n) {
            n = Q.event.fix(n || t.event);
            var r, i, o, a, s, u, c, l, f, p = (Q._data(this, "events") || {})[n.type] || [], h = p.delegateCount,
                d = J.call(arguments), v = !n.exclusive && !n.namespace, g = Q.event.special[n.type] || {}, m = [];
            if (d[0] = n, n.delegateTarget = this, !g.preDispatch || g.preDispatch.call(this, n) !== !1) {
                if (h && (!n.button || "click" !== n.type)) for (o = n.target; o != this; o = o.parentNode || this) if (o.disabled !== !0 || "click" !== n.type) {
                    for (s = {}, c = [], r = 0; r < h; r++) l = p[r], f = l.selector, s[f] === e && (s[f] = l.needsContext ? Q(f, this).index(o) >= 0 : Q.find(f, this, null, [o]).length), s[f] && c.push(l);
                    c.length && m.push({elem: o, matches: c})
                }
                for (p.length > h && m.push({
                    elem: this,
                    matches: p.slice(h)
                }), r = 0; r < m.length && !n.isPropagationStopped(); r++) for (u = m[r], n.currentTarget = u.elem, i = 0; i < u.matches.length && !n.isImmediatePropagationStopped(); i++) l = u.matches[i], (v || !n.namespace && !l.namespace || n.namespace_re && n.namespace_re.test(l.namespace)) && (n.data = l.data, n.handleObj = l, a = ((Q.event.special[l.origType] || {}).handle || l.handler).apply(u.elem, d), a !== e && (n.result = a, a === !1 && (n.preventDefault(), n.stopPropagation())));
                return g.postDispatch && g.postDispatch.call(this, n), n.result
            }
        },
        props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
        fixHooks: {},
        keyHooks: {
            props: "char charCode key keyCode".split(" "), filter: function (t, e) {
                return null == t.which && (t.which = null != e.charCode ? e.charCode : e.keyCode), t
            }
        },
        mouseHooks: {
            props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
            filter: function (t, n) {
                var r, i, o, a = n.button, s = n.fromElement;
                return null == t.pageX && null != n.clientX && (r = t.target.ownerDocument || B, i = r.documentElement, o = r.body, t.pageX = n.clientX + (i && i.scrollLeft || o && o.scrollLeft || 0) - (i && i.clientLeft || o && o.clientLeft || 0), t.pageY = n.clientY + (i && i.scrollTop || o && o.scrollTop || 0) - (i && i.clientTop || o && o.clientTop || 0)), !t.relatedTarget && s && (t.relatedTarget = s === t.target ? n.toElement : s), !t.which && a !== e && (t.which = 1 & a ? 1 : 2 & a ? 3 : 4 & a ? 2 : 0), t
            }
        },
        fix: function (t) {
            if (t[Q.expando]) return t;
            var e, n, r = t, i = Q.event.fixHooks[t.type] || {}, o = i.props ? this.props.concat(i.props) : this.props;
            for (t = Q.Event(r), e = o.length; e;) n = o[--e], t[n] = r[n];
            return t.target || (t.target = r.srcElement || B), 3 === t.target.nodeType && (t.target = t.target.parentNode), t.metaKey = !!t.metaKey, i.filter ? i.filter(t, r) : t
        },
        special: {
            load: {noBubble: !0},
            focus: {delegateType: "focusin"},
            blur: {delegateType: "focusout"},
            beforeunload: {
                setup: function (t, e, n) {
                    Q.isWindow(this) && (this.onbeforeunload = n)
                }, teardown: function (t, e) {
                    this.onbeforeunload === e && (this.onbeforeunload = null)
                }
            }
        },
        simulate: function (t, e, n, r) {
            var i = Q.extend(new Q.Event, n, {type: t, isSimulated: !0, originalEvent: {}});
            r ? Q.event.trigger(i, null, e) : Q.event.dispatch.call(e, i), i.isDefaultPrevented() && n.preventDefault()
        }
    }, Q.event.handle = Q.event.dispatch, Q.removeEvent = B.removeEventListener ? function (t, e, n) {
        t.removeEventListener && t.removeEventListener(e, n, !1)
    } : function (t, e, n) {
        var r = "on" + e;
        t.detachEvent && ("undefined" == typeof t[r] && (t[r] = null), t.detachEvent(r, n))
    }, Q.Event = function (t, e) {
        return this instanceof Q.Event ? (t && t.type ? (this.originalEvent = t, this.type = t.type, this.isDefaultPrevented = t.defaultPrevented || t.returnValue === !1 || t.getPreventDefault && t.getPreventDefault() ? a : o) : this.type = t, e && Q.extend(this, e), this.timeStamp = t && t.timeStamp || Q.now(), this[Q.expando] = !0, void 0) : new Q.Event(t, e)
    }, Q.Event.prototype = {
        preventDefault: function () {
            this.isDefaultPrevented = a;
            var t = this.originalEvent;
            t && (t.preventDefault ? t.preventDefault() : t.returnValue = !1)
        }, stopPropagation: function () {
            this.isPropagationStopped = a;
            var t = this.originalEvent;
            t && (t.stopPropagation && t.stopPropagation(), t.cancelBubble = !0)
        }, stopImmediatePropagation: function () {
            this.isImmediatePropagationStopped = a, this.stopPropagation()
        }, isDefaultPrevented: o, isPropagationStopped: o, isImmediatePropagationStopped: o
    }, Q.each({mouseenter: "mouseover", mouseleave: "mouseout"}, function (t, e) {
        Q.event.special[t] = {
            delegateType: e, bindType: e, handle: function (t) {
                var n, r = this, i = t.relatedTarget, o = t.handleObj;
                o.selector;
                return i && (i === r || Q.contains(r, i)) || (t.type = o.origType, n = o.handler.apply(this, arguments), t.type = e), n
            }
        }
    }), Q.support.submitBubbles || (Q.event.special.submit = {
        setup: function () {
            return !Q.nodeName(this, "form") && void Q.event.add(this, "click._submit keypress._submit", function (t) {
                var n = t.target, r = Q.nodeName(n, "input") || Q.nodeName(n, "button") ? n.form : e;
                r && !Q._data(r, "_submit_attached") && (Q.event.add(r, "submit._submit", function (t) {
                    t._submit_bubble = !0
                }), Q._data(r, "_submit_attached", !0))
            })
        }, postDispatch: function (t) {
            t._submit_bubble && (delete t._submit_bubble, this.parentNode && !t.isTrigger && Q.event.simulate("submit", this.parentNode, t, !0))
        }, teardown: function () {
            return !Q.nodeName(this, "form") && void Q.event.remove(this, "._submit")
        }
    }), Q.support.changeBubbles || (Q.event.special.change = {
        setup: function () {
            return Ct.test(this.nodeName) ? ("checkbox" !== this.type && "radio" !== this.type || (Q.event.add(this, "propertychange._change", function (t) {
                "checked" === t.originalEvent.propertyName && (this._just_changed = !0)
            }), Q.event.add(this, "click._change", function (t) {
                this._just_changed && !t.isTrigger && (this._just_changed = !1), Q.event.simulate("change", this, t, !0)
            })), !1) : void Q.event.add(this, "beforeactivate._change", function (t) {
                var e = t.target;
                Ct.test(e.nodeName) && !Q._data(e, "_change_attached") && (Q.event.add(e, "change._change", function (t) {
                    this.parentNode && !t.isSimulated && !t.isTrigger && Q.event.simulate("change", this.parentNode, t, !0)
                }), Q._data(e, "_change_attached", !0))
            })
        }, handle: function (t) {
            var e = t.target;
            if (this !== e || t.isSimulated || t.isTrigger || "radio" !== e.type && "checkbox" !== e.type) return t.handleObj.handler.apply(this, arguments)
        }, teardown: function () {
            return Q.event.remove(this, "._change"), !Ct.test(this.nodeName)
        }
    }), Q.support.focusinBubbles || Q.each({focus: "focusin", blur: "focusout"}, function (t, e) {
        var n = 0, r = function (t) {
            Q.event.simulate(e, t.target, Q.event.fix(t), !0)
        };
        Q.event.special[e] = {
            setup: function () {
                0 === n++ && B.addEventListener(t, r, !0)
            }, teardown: function () {
                0 === --n && B.removeEventListener(t, r, !0)
            }
        }
    }), Q.fn.extend({
        on: function (t, n, r, i, a) {
            var s, u;
            if ("object" == typeof t) {
                "string" != typeof n && (r = r || n, n = e);
                for (u in t) this.on(u, n, r, t[u], a);
                return this
            }
            if (null == r && null == i ? (i = n, r = n = e) : null == i && ("string" == typeof n ? (i = r, r = e) : (i = r, r = n, n = e)), i === !1) i = o; else if (!i) return this;
            return 1 === a && (s = i, i = function (t) {
                return Q().off(t), s.apply(this, arguments)
            }, i.guid = s.guid || (s.guid = Q.guid++)), this.each(function () {
                Q.event.add(this, t, i, r, n)
            })
        }, one: function (t, e, n, r) {
            return this.on(t, e, n, r, 1)
        }, off: function (t, n, r) {
            var i, a;
            if (t && t.preventDefault && t.handleObj) return i = t.handleObj, Q(t.delegateTarget).off(i.namespace ? i.origType + "." + i.namespace : i.origType, i.selector, i.handler), this;
            if ("object" == typeof t) {
                for (a in t) this.off(a, n, t[a]);
                return this
            }
            return n !== !1 && "function" != typeof n || (r = n, n = e), r === !1 && (r = o), this.each(function () {
                Q.event.remove(this, t, r, n)
            })
        }, bind: function (t, e, n) {
            return this.on(t, null, e, n)
        }, unbind: function (t, e) {
            return this.off(t, null, e)
        }, live: function (t, e, n) {
            return Q(this.context).on(t, this.selector, e, n), this
        }, die: function (t, e) {
            return Q(this.context).off(t, this.selector || "**", e), this
        }, delegate: function (t, e, n, r) {
            return this.on(e, t, n, r)
        }, undelegate: function (t, e, n) {
            return 1 === arguments.length ? this.off(t, "**") : this.off(e, t || "**", n)
        }, trigger: function (t, e) {
            return this.each(function () {
                Q.event.trigger(t, e, this)
            })
        }, triggerHandler: function (t, e) {
            if (this[0]) return Q.event.trigger(t, e, this[0], !0)
        }, toggle: function (t) {
            var e = arguments, n = t.guid || Q.guid++, r = 0, i = function (n) {
                var i = (Q._data(this, "lastToggle" + t.guid) || 0) % r;
                return Q._data(this, "lastToggle" + t.guid, i + 1), n.preventDefault(), e[i].apply(this, arguments) || !1
            };
            for (i.guid = n; r < e.length;) e[r++].guid = n;
            return this.click(i)
        }, hover: function (t, e) {
            return this.mouseenter(t).mouseleave(e || t)
        }
    }), Q.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function (t, e) {
        Q.fn[e] = function (t, n) {
            return null == n && (n = t, t = null), arguments.length > 0 ? this.on(e, null, t, n) : this.trigger(e)
        }, $t.test(e) && (Q.event.fixHooks[e] = Q.event.keyHooks), jt.test(e) && (Q.event.fixHooks[e] = Q.event.mouseHooks)
    }), function (t, e) {
        function n(t, e, n, r) {
            n = n || [], e = e || j;
            var i, o, a, s, u = e.nodeType;
            if (!t || "string" != typeof t) return n;
            if (1 !== u && 9 !== u) return [];
            if (a = b(e), !a && !r && (i = nt.exec(t))) if (s = i[1]) {
                if (9 === u) {
                    if (o = e.getElementById(s), !o || !o.parentNode) return n;
                    if (o.id === s) return n.push(o), n
                } else if (e.ownerDocument && (o = e.ownerDocument.getElementById(s)) && w(e, o) && o.id === s) return n.push(o), n
            } else {
                if (i[2]) return R.apply(n, L.call(e.getElementsByTagName(t), 0)), n;
                if ((s = i[3]) && pt && e.getElementsByClassName) return R.apply(n, L.call(e.getElementsByClassName(s), 0)), n
            }
            return v(t.replace(K, "$1"), e, n, r, a)
        }

        function r(t) {
            return function (e) {
                var n = e.nodeName.toLowerCase();
                return "input" === n && e.type === t
            }
        }

        function i(t) {
            return function (e) {
                var n = e.nodeName.toLowerCase();
                return ("input" === n || "button" === n) && e.type === t
            }
        }

        function o(t) {
            return F(function (e) {
                return e = +e, F(function (n, r) {
                    for (var i, o = t([], n.length, e), a = o.length; a--;) n[i = o[a]] && (n[i] = !(r[i] = n[i]))
                })
            })
        }

        function a(t, e, n) {
            if (t === e) return n;
            for (var r = t.nextSibling; r;) {
                if (r === e) return -1;
                r = r.nextSibling
            }
            return 1
        }

        function s(t, e) {
            var r, i, o, a, s, u, c, l = H[k][t];
            if (l) return e ? 0 : l.slice(0);
            for (s = t, u = [], c = x.preFilter; s;) {
                r && !(i = Z.exec(s)) || (i && (s = s.slice(i[0].length)), u.push(o = [])), r = !1, (i = tt.exec(s)) && (o.push(r = new $(i.shift())), s = s.slice(r.length), r.type = i[0].replace(K, " "));
                for (a in x.filter) (i = st[a].exec(s)) && (!c[a] || (i = c[a](i, j, !0))) && (o.push(r = new $(i.shift())), s = s.slice(r.length), r.type = a, r.matches = i);
                if (!r) break
            }
            return e ? s.length : s ? n.error(t) : H(t, u).slice(0)
        }

        function u(t, e, n) {
            var r = e.dir, i = n && "parentNode" === e.dir, o = I++;
            return e.first ? function (e, n, o) {
                for (; e = e[r];) if (i || 1 === e.nodeType) return t(e, n, o)
            } : function (e, n, a) {
                if (a) {
                    for (; e = e[r];) if ((i || 1 === e.nodeType) && t(e, n, a)) return e
                } else for (var s, u = D + " " + o + " ", c = u + m; e = e[r];) if (i || 1 === e.nodeType) {
                    if ((s = e[k]) === c) return e.sizset;
                    if ("string" == typeof s && 0 === s.indexOf(u)) {
                        if (e.sizset) return e
                    } else {
                        if (e[k] = c, t(e, n, a)) return e.sizset = !0, e;
                        e.sizset = !1
                    }
                }
            }
        }

        function c(t) {
            return t.length > 1 ? function (e, n, r) {
                for (var i = t.length; i--;) if (!t[i](e, n, r)) return !1;
                return !0
            } : t[0]
        }

        function l(t, e, n, r, i) {
            for (var o, a = [], s = 0, u = t.length, c = null != e; s < u; s++) (o = t[s]) && (n && !n(o, r, i) || (a.push(o), c && e.push(s)));
            return a
        }

        function f(t, e, n, r, i, o) {
            return r && !r[k] && (r = f(r)), i && !i[k] && (i = f(i, o)), F(function (o, a, s, u) {
                if (!o || !i) {
                    var c, f, p, h = [], v = [], g = a.length, m = o || d(e || "*", s.nodeType ? [s] : s, [], o),
                        y = !t || !o && e ? m : l(m, h, t, s, u), x = n ? i || (o ? t : g || r) ? [] : a : y;
                    if (n && n(y, x, s, u), r) for (p = l(x, v), r(p, [], s, u), c = p.length; c--;) (f = p[c]) && (x[v[c]] = !(y[v[c]] = f));
                    if (o) for (c = t && x.length; c--;) (f = x[c]) && (o[h[c]] = !(a[h[c]] = f)); else x = l(x === a ? x.splice(g, x.length) : x), i ? i(null, a, x, u) : R.apply(a, x)
                }
            })
        }

        function p(t) {
            for (var e, n, r, i = t.length, o = x.relative[t[0].type], a = o || x.relative[" "], s = o ? 1 : 0, l = u(function (t) {
                return t === e
            }, a, !0), h = u(function (t) {
                return P.call(e, t) > -1
            }, a, !0), d = [function (t, n, r) {
                return !o && (r || n !== A) || ((e = n).nodeType ? l(t, n, r) : h(t, n, r))
            }]; s < i; s++) if (n = x.relative[t[s].type]) d = [u(c(d), n)]; else {
                if (n = x.filter[t[s].type].apply(null, t[s].matches), n[k]) {
                    for (r = ++s; r < i && !x.relative[t[r].type]; r++) ;
                    return f(s > 1 && c(d), s > 1 && t.slice(0, s - 1).join("").replace(K, "$1"), n, s < r && p(t.slice(s, r)), r < i && p(t = t.slice(r)), r < i && t.join(""))
                }
                d.push(n)
            }
            return c(d)
        }

        function h(t, e) {
            var r = e.length > 0, i = t.length > 0, o = function (a, s, u, c, f) {
                var p, h, d, v = [], g = 0, y = "0", _ = a && [], b = null != f, w = A,
                    T = a || i && x.find.TAG("*", f && s.parentNode || s), E = D += null == w ? 1 : Math.E;
                for (b && (A = s !== j && s, m = o.el); null != (p = T[y]); y++) {
                    if (i && p) {
                        for (h = 0; d = t[h]; h++) if (d(p, s, u)) {
                            c.push(p);
                            break
                        }
                        b && (D = E, m = ++o.el)
                    }
                    r && ((p = !d && p) && g--, a && _.push(p))
                }
                if (g += y, r && y !== g) {
                    for (h = 0; d = e[h]; h++) d(_, v, s, u);
                    if (a) {
                        if (g > 0) for (; y--;) !_[y] && !v[y] && (v[y] = M.call(c));
                        v = l(v)
                    }
                    R.apply(c, v), b && !a && v.length > 0 && g + e.length > 1 && n.uniqueSort(c)
                }
                return b && (D = E, A = w), _
            };
            return o.el = 0, r ? F(o) : o
        }

        function d(t, e, r, i) {
            for (var o = 0, a = e.length; o < a; o++) n(t, e[o], r, i);
            return r
        }

        function v(t, e, n, r, i) {
            var o, a, u, c, l, f = s(t);
            f.length;
            if (!r && 1 === f.length) {
                if (a = f[0] = f[0].slice(0), a.length > 2 && "ID" === (u = a[0]).type && 9 === e.nodeType && !i && x.relative[a[1].type]) {
                    if (e = x.find.ID(u.matches[0].replace(at, ""), e, i)[0], !e) return n;
                    t = t.slice(a.shift().length)
                }
                for (o = st.POS.test(t) ? -1 : a.length - 1; o >= 0 && (u = a[o], !x.relative[c = u.type]); o--) if ((l = x.find[c]) && (r = l(u.matches[0].replace(at, ""), rt.test(a[0].type) && e.parentNode || e, i))) {
                    if (a.splice(o, 1), t = r.length && a.join(""), !t) return R.apply(n, L.call(r, 0)), n;
                    break
                }
            }
            return T(t, f)(r, e, i, n, rt.test(t)), n
        }

        function g() {
        }

        var m, y, x, _, b, w, T, E, N, A, C = !0, S = "undefined", k = ("sizcache" + Math.random()).replace(".", ""),
            $ = String, j = t.document, O = j.documentElement, D = 0, I = 0, M = [].pop, R = [].push, L = [].slice,
            P = [].indexOf || function (t) {
                for (var e = 0, n = this.length; e < n; e++) if (this[e] === t) return e;
                return -1
            }, F = function (t, e) {
                return t[k] = null == e || e, t
            }, q = function () {
                var t = {}, e = [];
                return F(function (n, r) {
                    return e.push(n) > x.cacheLength && delete t[e.shift()], t[n] = r
                }, t)
            }, B = q(), H = q(), z = q(), W = "[\\x20\\t\\r\\n\\f]", U = "(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",
            G = U.replace("w", "w#"), J = "([*^$|!~]?=)",
            X = "\\[" + W + "*(" + U + ")" + W + "*(?:" + J + W + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + G + ")|)|)" + W + "*\\]",
            V = ":(" + U + ")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:" + X + ")|[^:]|\\\\.)*|.*))\\)|)",
            Y = ":(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + W + "*((?:-\\d)?\\d*)" + W + "*\\)|)(?=[^-]|$)",
            K = new RegExp("^" + W + "+|((?:^|[^\\\\])(?:\\\\.)*)" + W + "+$", "g"),
            Z = new RegExp("^" + W + "*," + W + "*"), tt = new RegExp("^" + W + "*([\\x20\\t\\r\\n\\f>+~])" + W + "*"),
            et = new RegExp(V), nt = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/, rt = /[\x20\t\r\n\f]*[+~]/, it = /h\d/i,
            ot = /input|select|textarea|button/i, at = /\\(?!\\)/g, st = {
                ID: new RegExp("^#(" + U + ")"),
                CLASS: new RegExp("^\\.(" + U + ")"),
                NAME: new RegExp("^\\[name=['\"]?(" + U + ")['\"]?\\]"),
                TAG: new RegExp("^(" + U.replace("w", "w*") + ")"),
                ATTR: new RegExp("^" + X),
                PSEUDO: new RegExp("^" + V),
                POS: new RegExp(Y, "i"),
                CHILD: new RegExp("^:(only|nth|first|last)-child(?:\\(" + W + "*(even|odd|(([+-]|)(\\d*)n|)" + W + "*(?:([+-]|)" + W + "*(\\d+)|))" + W + "*\\)|)", "i"),
                needsContext: new RegExp("^" + W + "*[>+~]|" + Y, "i")
            }, ut = function (t) {
                var e = j.createElement("div");
                try {
                    return t(e)
                } catch (n) {
                    return !1
                } finally {
                    e = null
                }
            }, ct = ut(function (t) {
                return t.appendChild(j.createComment("")), !t.getElementsByTagName("*").length
            }), lt = ut(function (t) {
                return t.innerHTML = "<a href='#'></a>", t.firstChild && typeof t.firstChild.getAttribute !== S && "#" === t.firstChild.getAttribute("href")
            }), ft = ut(function (t) {
                t.innerHTML = "<select></select>";
                var e = typeof t.lastChild.getAttribute("multiple");
                return "boolean" !== e && "string" !== e
            }), pt = ut(function (t) {
                return t.innerHTML = "<div class='hidden e'></div><div class='hidden'></div>", !(!t.getElementsByClassName || !t.getElementsByClassName("e").length) && (t.lastChild.className = "e", 2 === t.getElementsByClassName("e").length)
            }), ht = ut(function (t) {
                t.id = k + 0, t.innerHTML = "<a name='" + k + "'></a><div name='" + k + "'></div>", O.insertBefore(t, O.firstChild);
                var e = j.getElementsByName && j.getElementsByName(k).length === 2 + j.getElementsByName(k + 0).length;
                return y = !j.getElementById(k), O.removeChild(t), e
            });
        try {
            L.call(O.childNodes, 0)[0].nodeType
        } catch (dt) {
            L = function (t) {
                for (var e, n = []; e = this[t]; t++) n.push(e);
                return n
            }
        }
        n.matches = function (t, e) {
            return n(t, null, null, e)
        }, n.matchesSelector = function (t, e) {
            return n(e, null, null, [t]).length > 0
        }, _ = n.getText = function (t) {
            var e, n = "", r = 0, i = t.nodeType;
            if (i) {
                if (1 === i || 9 === i || 11 === i) {
                    if ("string" == typeof t.textContent) return t.textContent;
                    for (t = t.firstChild; t; t = t.nextSibling) n += _(t)
                } else if (3 === i || 4 === i) return t.nodeValue
            } else for (; e = t[r]; r++) n += _(e);
            return n
        }, b = n.isXML = function (t) {
            var e = t && (t.ownerDocument || t).documentElement;
            return !!e && "HTML" !== e.nodeName
        }, w = n.contains = O.contains ? function (t, e) {
            var n = 9 === t.nodeType ? t.documentElement : t, r = e && e.parentNode;
            return t === r || !!(r && 1 === r.nodeType && n.contains && n.contains(r))
        } : O.compareDocumentPosition ? function (t, e) {
            return e && !!(16 & t.compareDocumentPosition(e))
        } : function (t, e) {
            for (; e = e.parentNode;) if (e === t) return !0;
            return !1
        }, n.attr = function (t, e) {
            var n, r = b(t);
            return r || (e = e.toLowerCase()), (n = x.attrHandle[e]) ? n(t) : r || ft ? t.getAttribute(e) : (n = t.getAttributeNode(e), n ? "boolean" == typeof t[e] ? t[e] ? e : null : n.specified ? n.value : null : null)
        }, x = n.selectors = {
            cacheLength: 50,
            createPseudo: F,
            match: st,
            attrHandle: lt ? {} : {
                href: function (t) {
                    return t.getAttribute("href", 2)
                }, type: function (t) {
                    return t.getAttribute("type")
                }
            },
            find: {
                ID: y ? function (t, e, n) {
                    if (typeof e.getElementById !== S && !n) {
                        var r = e.getElementById(t);
                        return r && r.parentNode ? [r] : []
                    }
                } : function (t, n, r) {
                    if (typeof n.getElementById !== S && !r) {
                        var i = n.getElementById(t);
                        return i ? i.id === t || typeof i.getAttributeNode !== S && i.getAttributeNode("id").value === t ? [i] : e : []
                    }
                }, TAG: ct ? function (t, e) {
                    if (typeof e.getElementsByTagName !== S) return e.getElementsByTagName(t)
                } : function (t, e) {
                    var n = e.getElementsByTagName(t);
                    if ("*" === t) {
                        for (var r, i = [], o = 0; r = n[o]; o++) 1 === r.nodeType && i.push(r);
                        return i
                    }
                    return n
                }, NAME: ht && function (t, e) {
                    if (typeof e.getElementsByName !== S) return e.getElementsByName(name)
                }, CLASS: pt && function (t, e, n) {
                    if (typeof e.getElementsByClassName !== S && !n) return e.getElementsByClassName(t)
                }
            },
            relative: {
                ">": {dir: "parentNode", first: !0},
                " ": {dir: "parentNode"},
                "+": {dir: "previousSibling", first: !0},
                "~": {dir: "previousSibling"}
            },
            preFilter: {
                ATTR: function (t) {
                    return t[1] = t[1].replace(at, ""), t[3] = (t[4] || t[5] || "").replace(at, ""), "~=" === t[2] && (t[3] = " " + t[3] + " "), t.slice(0, 4)
                }, CHILD: function (t) {
                    return t[1] = t[1].toLowerCase(), "nth" === t[1] ? (t[2] || n.error(t[0]), t[3] = +(t[3] ? t[4] + (t[5] || 1) : 2 * ("even" === t[2] || "odd" === t[2])), t[4] = +(t[6] + t[7] || "odd" === t[2])) : t[2] && n.error(t[0]), t
                }, PSEUDO: function (t) {
                    var e, n;
                    return st.CHILD.test(t[0]) ? null : (t[3] ? t[2] = t[3] : (e = t[4]) && (et.test(e) && (n = s(e, !0)) && (n = e.indexOf(")", e.length - n) - e.length) && (e = e.slice(0, n), t[0] = t[0].slice(0, n)), t[2] = e), t.slice(0, 3))
                }
            },
            filter: {
                ID: y ? function (t) {
                    return t = t.replace(at, ""), function (e) {
                        return e.getAttribute("id") === t
                    }
                } : function (t) {
                    return t = t.replace(at, ""), function (e) {
                        var n = typeof e.getAttributeNode !== S && e.getAttributeNode("id");
                        return n && n.value === t
                    }
                }, TAG: function (t) {
                    return "*" === t ? function () {
                        return !0
                    } : (t = t.replace(at, "").toLowerCase(), function (e) {
                        return e.nodeName && e.nodeName.toLowerCase() === t
                    })
                }, CLASS: function (t) {
                    var e = B[k][t];
                    return e || (e = B(t, new RegExp("(^|" + W + ")" + t + "(" + W + "|$)"))), function (t) {
                        return e.test(t.className || typeof t.getAttribute !== S && t.getAttribute("class") || "")
                    }
                }, ATTR: function (t, e, r) {
                    return function (i, o) {
                        var a = n.attr(i, t);
                        return null == a ? "!=" === e : !e || (a += "", "=" === e ? a === r : "!=" === e ? a !== r : "^=" === e ? r && 0 === a.indexOf(r) : "*=" === e ? r && a.indexOf(r) > -1 : "$=" === e ? r && a.substr(a.length - r.length) === r : "~=" === e ? (" " + a + " ").indexOf(r) > -1 : "|=" === e && (a === r || a.substr(0, r.length + 1) === r + "-"))
                    }
                }, CHILD: function (t, e, n, r) {
                    return "nth" === t ? function (t) {
                        var e, i, o = t.parentNode;
                        if (1 === n && 0 === r) return !0;
                        if (o) for (i = 0, e = o.firstChild; e && (1 !== e.nodeType || (i++, t !== e)); e = e.nextSibling) ;
                        return i -= r, i === n || i % n === 0 && i / n >= 0
                    } : function (e) {
                        var n = e;
                        switch (t) {
                            case"only":
                            case"first":
                                for (; n = n.previousSibling;) if (1 === n.nodeType) return !1;
                                if ("first" === t) return !0;
                                n = e;
                            case"last":
                                for (; n = n.nextSibling;) if (1 === n.nodeType) return !1;
                                return !0
                        }
                    }
                }, PSEUDO: function (t, e) {
                    var r, i = x.pseudos[t] || x.setFilters[t.toLowerCase()] || n.error("unsupported pseudo: " + t);
                    return i[k] ? i(e) : i.length > 1 ? (r = [t, t, "", e], x.setFilters.hasOwnProperty(t.toLowerCase()) ? F(function (t, n) {
                        for (var r, o = i(t, e), a = o.length; a--;) r = P.call(t, o[a]), t[r] = !(n[r] = o[a])
                    }) : function (t) {
                        return i(t, 0, r)
                    }) : i
                }
            },
            pseudos: {
                not: F(function (t) {
                    var e = [], n = [], r = T(t.replace(K, "$1"));
                    return r[k] ? F(function (t, e, n, i) {
                        for (var o, a = r(t, null, i, []), s = t.length; s--;) (o = a[s]) && (t[s] = !(e[s] = o))
                    }) : function (t, i, o) {
                        return e[0] = t, r(e, null, o, n), !n.pop()
                    }
                }),
                has: F(function (t) {
                    return function (e) {
                        return n(t, e).length > 0
                    }
                }),
                contains: F(function (t) {
                    return function (e) {
                        return (e.textContent || e.innerText || _(e)).indexOf(t) > -1
                    }
                }),
                enabled: function (t) {
                    return t.disabled === !1
                },
                disabled: function (t) {
                    return t.disabled === !0
                },
                checked: function (t) {
                    var e = t.nodeName.toLowerCase();
                    return "input" === e && !!t.checked || "option" === e && !!t.selected
                },
                selected: function (t) {
                    return t.parentNode && t.parentNode.selectedIndex, t.selected === !0
                },
                parent: function (t) {
                    return !x.pseudos.empty(t)
                },
                empty: function (t) {
                    var e;
                    for (t = t.firstChild; t;) {
                        if (t.nodeName > "@" || 3 === (e = t.nodeType) || 4 === e) return !1;
                        t = t.nextSibling
                    }
                    return !0
                },
                header: function (t) {
                    return it.test(t.nodeName)
                },
                text: function (t) {
                    var e, n;
                    return "input" === t.nodeName.toLowerCase() && "text" === (e = t.type) && (null == (n = t.getAttribute("type")) || n.toLowerCase() === e)
                },
                radio: r("radio"),
                checkbox: r("checkbox"),
                file: r("file"),
                password: r("password"),
                image: r("image"),
                submit: i("submit"),
                reset: i("reset"),
                button: function (t) {
                    var e = t.nodeName.toLowerCase();
                    return "input" === e && "button" === t.type || "button" === e
                },
                input: function (t) {
                    return ot.test(t.nodeName)
                },
                focus: function (t) {
                    var e = t.ownerDocument;
                    return t === e.activeElement && (!e.hasFocus || e.hasFocus()) && (!!t.type || !!t.href)
                },
                active: function (t) {
                    return t === t.ownerDocument.activeElement
                },
                first: o(function (t, e, n) {
                    return [0]
                }),
                last: o(function (t, e, n) {
                    return [e - 1]
                }),
                eq: o(function (t, e, n) {
                    return [n < 0 ? n + e : n]
                }),
                even: o(function (t, e, n) {
                    for (var r = 0; r < e; r += 2) t.push(r);
                    return t
                }),
                odd: o(function (t, e, n) {
                    for (var r = 1; r < e; r += 2) t.push(r);
                    return t
                }),
                lt: o(function (t, e, n) {
                    for (var r = n < 0 ? n + e : n; --r >= 0;) t.push(r);
                    return t
                }),
                gt: o(function (t, e, n) {
                    for (var r = n < 0 ? n + e : n; ++r < e;) t.push(r);
                    return t
                })
            }
        }, E = O.compareDocumentPosition ? function (t, e) {
            return t === e ? (N = !0, 0) : (t.compareDocumentPosition && e.compareDocumentPosition ? 4 & t.compareDocumentPosition(e) : t.compareDocumentPosition) ? -1 : 1
        } : function (t, e) {
            if (t === e) return N = !0, 0;
            if (t.sourceIndex && e.sourceIndex) return t.sourceIndex - e.sourceIndex;
            var n, r, i = [], o = [], s = t.parentNode, u = e.parentNode, c = s;
            if (s === u) return a(t, e);
            if (!s) return -1;
            if (!u) return 1;
            for (; c;) i.unshift(c), c = c.parentNode;
            for (c = u; c;) o.unshift(c), c = c.parentNode;
            n = i.length, r = o.length;
            for (var l = 0; l < n && l < r; l++) if (i[l] !== o[l]) return a(i[l], o[l]);
            return l === n ? a(t, o[l], -1) : a(i[l], e, 1)
        }, [0, 0].sort(E), C = !N, n.uniqueSort = function (t) {
            var e, n = 1;
            if (N = C, t.sort(E), N) for (; e = t[n]; n++) e === t[n - 1] && t.splice(n--, 1);
            return t
        }, n.error = function (t) {
            throw new Error("Syntax error, unrecognized expression: " + t)
        }, T = n.compile = function (t, e) {
            var n, r = [], i = [], o = z[k][t];
            if (!o) {
                for (e || (e = s(t)), n = e.length; n--;) o = p(e[n]), o[k] ? r.push(o) : i.push(o);
                o = z(t, h(i, r))
            }
            return o
        }, j.querySelectorAll && function () {
            var t, e = v, r = /'|\\/g, i = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, o = [":focus"],
                a = [":active", ":focus"],
                u = O.matchesSelector || O.mozMatchesSelector || O.webkitMatchesSelector || O.oMatchesSelector || O.msMatchesSelector;
            ut(function (t) {
                t.innerHTML = "<select><option selected=''></option></select>", t.querySelectorAll("[selected]").length || o.push("\\[" + W + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)"), t.querySelectorAll(":checked").length || o.push(":checked")
            }), ut(function (t) {
                t.innerHTML = "<p test=''></p>", t.querySelectorAll("[test^='']").length && o.push("[*^$]=" + W + "*(?:\"\"|'')"), t.innerHTML = "<input type='hidden'/>", t.querySelectorAll(":enabled").length || o.push(":enabled", ":disabled")
            }), o = new RegExp(o.join("|")), v = function (t, n, i, a, u) {
                if (!(a || u || o && o.test(t))) {
                    var c, l, f = !0, p = k, h = n, d = 9 === n.nodeType && t;
                    if (1 === n.nodeType && "object" !== n.nodeName.toLowerCase()) {
                        for (c = s(t), (f = n.getAttribute("id")) ? p = f.replace(r, "\\$&") : n.setAttribute("id", p), p = "[id='" + p + "'] ", l = c.length; l--;) c[l] = p + c[l].join("");
                        h = rt.test(t) && n.parentNode || n, d = c.join(",")
                    }
                    if (d) try {
                        return R.apply(i, L.call(h.querySelectorAll(d), 0)), i
                    } catch (v) {
                    } finally {
                        f || n.removeAttribute("id")
                    }
                }
                return e(t, n, i, a, u)
            }, u && (ut(function (e) {
                t = u.call(e, "div");
                try {
                    u.call(e, "[test!='']:sizzle"), a.push("!=", V)
                } catch (n) {
                }
            }), a = new RegExp(a.join("|")), n.matchesSelector = function (e, r) {
                if (r = r.replace(i, "='$1']"), !(b(e) || a.test(r) || o && o.test(r))) try {
                    var s = u.call(e, r);
                    if (s || t || e.document && 11 !== e.document.nodeType) return s
                } catch (c) {
                }
                return n(r, null, null, [e]).length > 0
            })
        }(), x.pseudos.nth = x.pseudos.eq, x.filters = g.prototype = x.pseudos, x.setFilters = new g, n.attr = Q.attr, Q.find = n, Q.expr = n.selectors, Q.expr[":"] = Q.expr.pseudos, Q.unique = n.uniqueSort, Q.text = n.getText, Q.isXMLDoc = n.isXML, Q.contains = n.contains
    }(t);
    var It = /Until$/, Mt = /^(?:parents|prev(?:Until|All))/, Rt = /^.[^:#\[\.,]*$/, Lt = Q.expr.match.needsContext,
        Pt = {children: !0, contents: !0, next: !0, prev: !0};
    Q.fn.extend({
        find: function (t) {
            var e, n, r, i, o, a, s = this;
            if ("string" != typeof t) return Q(t).filter(function () {
                for (e = 0, n = s.length; e < n; e++) if (Q.contains(s[e], this)) return !0
            });
            for (a = this.pushStack("", "find", t), e = 0, n = this.length; e < n; e++) if (r = a.length, Q.find(t, this[e], a), e > 0) for (i = r; i < a.length; i++) for (o = 0; o < r; o++) if (a[o] === a[i]) {
                a.splice(i--, 1);
                break
            }
            return a
        }, has: function (t) {
            var e, n = Q(t, this), r = n.length;
            return this.filter(function () {
                for (e = 0; e < r; e++) if (Q.contains(this, n[e])) return !0
            })
        }, not: function (t) {
            return this.pushStack(c(this, t, !1), "not", t)
        }, filter: function (t) {
            return this.pushStack(c(this, t, !0), "filter", t)
        }, is: function (t) {
            return !!t && ("string" == typeof t ? Lt.test(t) ? Q(t, this.context).index(this[0]) >= 0 : Q.filter(t, this).length > 0 : this.filter(t).length > 0)
        }, closest: function (t, e) {
            for (var n, r = 0, i = this.length, o = [], a = Lt.test(t) || "string" != typeof t ? Q(t, e || this.context) : 0; r < i; r++) for (n = this[r]; n && n.ownerDocument && n !== e && 11 !== n.nodeType;) {
                if (a ? a.index(n) > -1 : Q.find.matchesSelector(n, t)) {
                    o.push(n);
                    break
                }
                n = n.parentNode
            }
            return o = o.length > 1 ? Q.unique(o) : o, this.pushStack(o, "closest", t)
        }, index: function (t) {
            return t ? "string" == typeof t ? Q.inArray(this[0], Q(t)) : Q.inArray(t.jquery ? t[0] : t, this) : this[0] && this[0].parentNode ? this.prevAll().length : -1
        }, add: function (t, e) {
            var n = "string" == typeof t ? Q(t, e) : Q.makeArray(t && t.nodeType ? [t] : t), r = Q.merge(this.get(), n);
            return this.pushStack(s(n[0]) || s(r[0]) ? r : Q.unique(r))
        }, addBack: function (t) {
            return this.add(null == t ? this.prevObject : this.prevObject.filter(t))
        }
    }), Q.fn.andSelf = Q.fn.addBack, Q.each({
        parent: function (t) {
            var e = t.parentNode;
            return e && 11 !== e.nodeType ? e : null
        }, parents: function (t) {
            return Q.dir(t, "parentNode")
        }, parentsUntil: function (t, e, n) {
            return Q.dir(t, "parentNode", n)
        }, next: function (t) {
            return u(t, "nextSibling")
        }, prev: function (t) {
            return u(t, "previousSibling")
        }, nextAll: function (t) {
            return Q.dir(t, "nextSibling")
        }, prevAll: function (t) {
            return Q.dir(t, "previousSibling")
        }, nextUntil: function (t, e, n) {
            return Q.dir(t, "nextSibling", n)
        }, prevUntil: function (t, e, n) {
            return Q.dir(t, "previousSibling", n)
        }, siblings: function (t) {
            return Q.sibling((t.parentNode || {}).firstChild, t)
        }, children: function (t) {
            return Q.sibling(t.firstChild)
        }, contents: function (t) {
            return Q.nodeName(t, "iframe") ? t.contentDocument || t.contentWindow.document : Q.merge([], t.childNodes)
        }
    }, function (t, e) {
        Q.fn[t] = function (n, r) {
            var i = Q.map(this, e, n);
            return It.test(t) || (r = n), r && "string" == typeof r && (i = Q.filter(r, i)), i = this.length > 1 && !Pt[t] ? Q.unique(i) : i, this.length > 1 && Mt.test(t) && (i = i.reverse()), this.pushStack(i, t, J.call(arguments).join(","))
        }
    }), Q.extend({
        filter: function (t, e, n) {
            return n && (t = ":not(" + t + ")"), 1 === e.length ? Q.find.matchesSelector(e[0], t) ? [e[0]] : [] : Q.find.matches(t, e)
        }, dir: function (t, n, r) {
            for (var i = [], o = t[n]; o && 9 !== o.nodeType && (r === e || 1 !== o.nodeType || !Q(o).is(r));) 1 === o.nodeType && i.push(o), o = o[n];
            return i
        }, sibling: function (t, e) {
            for (var n = []; t; t = t.nextSibling) 1 === t.nodeType && t !== e && n.push(t);
            return n
        }
    });
    var Ft = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
        qt = / jQuery\d+="(?:null|\d+)"/g, Bt = /^\s+/,
        Ht = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, zt = /<([\w:]+)/,
        Wt = /<tbody/i, Ut = /<|&#?\w+;/, Gt = /<(?:script|style|link)/i, Jt = /<(?:script|object|embed|option|style)/i,
        Xt = new RegExp("<(?:" + Ft + ")[\\s/>]", "i"), Vt = /^(?:checkbox|radio)$/,
        Yt = /checked\s*(?:[^=]|=\s*.checked.)/i, Kt = /\/(java|ecma)script/i,
        Qt = /^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g, Zt = {
            option: [1, "<select multiple='multiple'>", "</select>"],
            legend: [1, "<fieldset>", "</fieldset>"],
            thead: [1, "<table>", "</table>"],
            tr: [2, "<table><tbody>", "</tbody></table>"],
            td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
            col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
            area: [1, "<map>", "</map>"],
            _default: [0, "", ""]
        }, te = l(B), ee = te.appendChild(B.createElement("div"));
    Zt.optgroup = Zt.option, Zt.tbody = Zt.tfoot = Zt.colgroup = Zt.caption = Zt.thead, Zt.th = Zt.td, Q.support.htmlSerialize || (Zt._default = [1, "X<div>", "</div>"]), Q.fn.extend({
        text: function (t) {
            return Q.access(this, function (t) {
                return t === e ? Q.text(this) : this.empty().append((this[0] && this[0].ownerDocument || B).createTextNode(t))
            }, null, t, arguments.length)
        }, wrapAll: function (t) {
            if (Q.isFunction(t)) return this.each(function (e) {
                Q(this).wrapAll(t.call(this, e))
            });
            if (this[0]) {
                var e = Q(t, this[0].ownerDocument).eq(0).clone(!0);
                this[0].parentNode && e.insertBefore(this[0]), e.map(function () {
                    for (var t = this; t.firstChild && 1 === t.firstChild.nodeType;) t = t.firstChild;
                    return t
                }).append(this)
            }
            return this
        }, wrapInner: function (t) {
            return Q.isFunction(t) ? this.each(function (e) {
                Q(this).wrapInner(t.call(this, e))
            }) : this.each(function () {
                var e = Q(this), n = e.contents();
                n.length ? n.wrapAll(t) : e.append(t)
            })
        }, wrap: function (t) {
            var e = Q.isFunction(t);
            return this.each(function (n) {
                Q(this).wrapAll(e ? t.call(this, n) : t)
            })
        }, unwrap: function () {
            return this.parent().each(function () {
                Q.nodeName(this, "body") || Q(this).replaceWith(this.childNodes)
            }).end()
        }, append: function () {
            return this.domManip(arguments, !0, function (t) {
                (1 === this.nodeType || 11 === this.nodeType) && this.appendChild(t)
            })
        }, prepend: function () {
            return this.domManip(arguments, !0, function (t) {
                (1 === this.nodeType || 11 === this.nodeType) && this.insertBefore(t, this.firstChild)
            })
        }, before: function () {
            if (!s(this[0])) return this.domManip(arguments, !1, function (t) {
                this.parentNode.insertBefore(t, this)
            });
            if (arguments.length) {
                var t = Q.clean(arguments);
                return this.pushStack(Q.merge(t, this), "before", this.selector)
            }
        }, after: function () {
            if (!s(this[0])) return this.domManip(arguments, !1, function (t) {
                this.parentNode.insertBefore(t, this.nextSibling)
            });
            if (arguments.length) {
                var t = Q.clean(arguments);
                return this.pushStack(Q.merge(this, t), "after", this.selector)
            }
        }, remove: function (t, e) {
            for (var n, r = 0; null != (n = this[r]); r++) t && !Q.filter(t, [n]).length || (!e && 1 === n.nodeType && (Q.cleanData(n.getElementsByTagName("*")), Q.cleanData([n])), n.parentNode && n.parentNode.removeChild(n));
            return this
        }, empty: function () {
            for (var t, e = 0; null != (t = this[e]); e++) for (1 === t.nodeType && Q.cleanData(t.getElementsByTagName("*")); t.firstChild;) t.removeChild(t.firstChild);
            return this
        }, clone: function (t, e) {
            return t = null != t && t, e = null == e ? t : e, this.map(function () {
                return Q.clone(this, t, e)
            })
        }, html: function (t) {
            return Q.access(this, function (t) {
                var n = this[0] || {}, r = 0, i = this.length;
                if (t === e) return 1 === n.nodeType ? n.innerHTML.replace(qt, "") : e;
                if ("string" == typeof t && !Gt.test(t) && (Q.support.htmlSerialize || !Xt.test(t)) && (Q.support.leadingWhitespace || !Bt.test(t)) && !Zt[(zt.exec(t) || ["", ""])[1].toLowerCase()]) {
                    t = t.replace(Ht, "<$1></$2>");
                    try {
                        for (; r < i; r++) n = this[r] || {}, 1 === n.nodeType && (Q.cleanData(n.getElementsByTagName("*")), n.innerHTML = t);
                        n = 0
                    } catch (o) {
                    }
                }
                n && this.empty().append(t)
            }, null, t, arguments.length)
        }, replaceWith: function (t) {
            return s(this[0]) ? this.length ? this.pushStack(Q(Q.isFunction(t) ? t() : t), "replaceWith", t) : this : Q.isFunction(t) ? this.each(function (e) {
                var n = Q(this), r = n.html();
                n.replaceWith(t.call(this, e, r))
            }) : ("string" != typeof t && (t = Q(t).detach()), this.each(function () {
                var e = this.nextSibling, n = this.parentNode;
                Q(this).remove(), e ? Q(e).before(t) : Q(n).append(t)
            }))
        }, detach: function (t) {
            return this.remove(t, !0)
        }, domManip: function (t, n, r) {
            t = [].concat.apply([], t);
            var i, o, a, s, u = 0, c = t[0], l = [], p = this.length;
            if (!Q.support.checkClone && p > 1 && "string" == typeof c && Yt.test(c)) return this.each(function () {
                Q(this).domManip(t, n, r)
            });
            if (Q.isFunction(c)) return this.each(function (i) {
                var o = Q(this);
                t[0] = c.call(this, i, n ? o.html() : e), o.domManip(t, n, r)
            });
            if (this[0]) {
                if (i = Q.buildFragment(t, this, l), a = i.fragment, o = a.firstChild, 1 === a.childNodes.length && (a = o), o) for (n = n && Q.nodeName(o, "tr"), s = i.cacheable || p - 1; u < p; u++) r.call(n && Q.nodeName(this[u], "table") ? f(this[u], "tbody") : this[u], u === s ? a : Q.clone(a, !0, !0));
                a = o = null, l.length && Q.each(l, function (t, e) {
                    e.src ? Q.ajax ? Q.ajax({
                        url: e.src,
                        type: "GET",
                        dataType: "script",
                        async: !1,
                        global: !1,
                        "throws": !0
                    }) : Q.error("no ajax") : Q.globalEval((e.text || e.textContent || e.innerHTML || "").replace(Qt, "")), e.parentNode && e.parentNode.removeChild(e)
                })
            }
            return this
        }
    }), Q.buildFragment = function (t, n, r) {
        var i, o, a, s = t[0];
        return n = n || B, n = !n.nodeType && n[0] || n, n = n.ownerDocument || n, 1 === t.length && "string" == typeof s && s.length < 512 && n === B && "<" === s.charAt(0) && !Jt.test(s) && (Q.support.checkClone || !Yt.test(s)) && (Q.support.html5Clone || !Xt.test(s)) && (o = !0, i = Q.fragments[s], a = i !== e), i || (i = n.createDocumentFragment(), Q.clean(t, n, i, r), o && (Q.fragments[s] = a && i)), {
            fragment: i,
            cacheable: o
        }
    }, Q.fragments = {}, Q.each({
        appendTo: "append",
        prependTo: "prepend",
        insertBefore: "before",
        insertAfter: "after",
        replaceAll: "replaceWith"
    }, function (t, e) {
        Q.fn[t] = function (n) {
            var r, i = 0, o = [], a = Q(n), s = a.length, u = 1 === this.length && this[0].parentNode;
            if ((null == u || u && 11 === u.nodeType && 1 === u.childNodes.length) && 1 === s) return a[e](this[0]), this;
            for (; i < s; i++) r = (i > 0 ? this.clone(!0) : this).get(), Q(a[i])[e](r), o = o.concat(r);
            return this.pushStack(o, t, a.selector)
        }
    }), Q.extend({
        clone: function (t, e, n) {
            var r, i, o, a;
            if (Q.support.html5Clone || Q.isXMLDoc(t) || !Xt.test("<" + t.nodeName + ">") ? a = t.cloneNode(!0) : (ee.innerHTML = t.outerHTML, ee.removeChild(a = ee.firstChild)), !(Q.support.noCloneEvent && Q.support.noCloneChecked || 1 !== t.nodeType && 11 !== t.nodeType || Q.isXMLDoc(t))) for (h(t, a), r = d(t), i = d(a), o = 0; r[o]; ++o) i[o] && h(r[o], i[o]);
            if (e && (p(t, a), n)) for (r = d(t), i = d(a), o = 0; r[o]; ++o) p(r[o], i[o]);
            return r = i = null, a
        }, clean: function (t, e, n, r) {
            var i, o, a, s, u, c, f, p, h, d, g, m = e === B && te, y = [];
            for (e && "undefined" != typeof e.createDocumentFragment || (e = B), i = 0; null != (a = t[i]); i++) if ("number" == typeof a && (a += ""), a) {
                if ("string" == typeof a) if (Ut.test(a)) {
                    for (m = m || l(e), f = e.createElement("div"), m.appendChild(f), a = a.replace(Ht, "<$1></$2>"), s = (zt.exec(a) || ["", ""])[1].toLowerCase(), u = Zt[s] || Zt._default, c = u[0], f.innerHTML = u[1] + a + u[2]; c--;) f = f.lastChild;
                    if (!Q.support.tbody) for (p = Wt.test(a), h = "table" !== s || p ? "<table>" !== u[1] || p ? [] : f.childNodes : f.firstChild && f.firstChild.childNodes, o = h.length - 1; o >= 0; --o) Q.nodeName(h[o], "tbody") && !h[o].childNodes.length && h[o].parentNode.removeChild(h[o]);
                    !Q.support.leadingWhitespace && Bt.test(a) && f.insertBefore(e.createTextNode(Bt.exec(a)[0]), f.firstChild), a = f.childNodes, f.parentNode.removeChild(f)
                } else a = e.createTextNode(a);
                a.nodeType ? y.push(a) : Q.merge(y, a)
            }
            if (f && (a = f = m = null), !Q.support.appendChecked) for (i = 0; null != (a = y[i]); i++) Q.nodeName(a, "input") ? v(a) : "undefined" != typeof a.getElementsByTagName && Q.grep(a.getElementsByTagName("input"), v);
            if (n) for (d = function (t) {
                if (!t.type || Kt.test(t.type)) return r ? r.push(t.parentNode ? t.parentNode.removeChild(t) : t) : n.appendChild(t)
            }, i = 0; null != (a = y[i]); i++) Q.nodeName(a, "script") && d(a) || (n.appendChild(a), "undefined" != typeof a.getElementsByTagName && (g = Q.grep(Q.merge([], a.getElementsByTagName("script")), d), y.splice.apply(y, [i + 1, 0].concat(g)), i += g.length));
            return y
        }, cleanData: function (t, e) {
            for (var n, r, i, o, a = 0, s = Q.expando, u = Q.cache, c = Q.support.deleteExpando, l = Q.event.special; null != (i = t[a]); a++) if ((e || Q.acceptData(i)) && (r = i[s], n = r && u[r])) {
                if (n.events) for (o in n.events) l[o] ? Q.event.remove(i, o) : Q.removeEvent(i, o, n.handle);
                u[r] && (delete u[r], c ? delete i[s] : i.removeAttribute ? i.removeAttribute(s) : i[s] = null, Q.deletedIds.push(r))
            }
        }
    }), function () {
        var t, e;
        Q.uaMatch = function (t) {
            t = t.toLowerCase();
            var e = /(chrome)[ \/]([\w.]+)/.exec(t) || /(webkit)[ \/]([\w.]+)/.exec(t) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(t) || /(msie) ([\w.]+)/.exec(t) || t.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(t) || [];
            return {browser: e[1] || "", version: e[2] || "0"}
        }, t = Q.uaMatch(z.userAgent), e = {}, t.browser && (e[t.browser] = !0, e.version = t.version), e.chrome ? e.webkit = !0 : e.webkit && (e.safari = !0), Q.browser = e, Q.sub = function () {
            function t(e, n) {
                return new t.fn.init(e, n)
            }

            Q.extend(!0, t, this), t.superclass = this, t.fn = t.prototype = this(), t.fn.constructor = t, t.sub = this.sub, t.fn.init = function n(n, r) {
                return r && r instanceof Q && !(r instanceof t) && (r = t(r)), Q.fn.init.call(this, n, r, e)
            }, t.fn.init.prototype = t.fn;
            var e = t(B);
            return t
        }
    }();
    var ne, re, ie, oe = /alpha\([^)]*\)/i, ae = /opacity=([^)]*)/, se = /^(top|right|bottom|left)$/,
        ue = /^(none|table(?!-c[ea]).+)/, ce = /^margin/, le = new RegExp("^(" + Z + ")(.*)$", "i"),
        fe = new RegExp("^(" + Z + ")(?!px)[a-z%]+$", "i"), pe = new RegExp("^([-+])=(" + Z + ")", "i"), he = {},
        de = {position: "absolute", visibility: "hidden", display: "block"}, ve = {letterSpacing: 0, fontWeight: 400},
        ge = ["Top", "Right", "Bottom", "Left"], me = ["Webkit", "O", "Moz", "ms"], ye = Q.fn.toggle;
    Q.fn.extend({
        css: function (t, n) {
            return Q.access(this, function (t, n, r) {
                return r !== e ? Q.style(t, n, r) : Q.css(t, n)
            }, t, n, arguments.length > 1)
        }, show: function () {
            return y(this, !0)
        }, hide: function () {
            return y(this)
        }, toggle: function (t, e) {
            var n = "boolean" == typeof t;
            return Q.isFunction(t) && Q.isFunction(e) ? ye.apply(this, arguments) : this.each(function () {
                (n ? t : m(this)) ? Q(this).show() : Q(this).hide()
            })
        }
    }), Q.extend({
        cssHooks: {
            opacity: {
                get: function (t, e) {
                    if (e) {
                        var n = ne(t, "opacity");
                        return "" === n ? "1" : n
                    }
                }
            }
        },
        cssNumber: {
            fillOpacity: !0,
            fontWeight: !0,
            lineHeight: !0,
            opacity: !0,
            orphans: !0,
            widows: !0,
            zIndex: !0,
            zoom: !0
        },
        cssProps: {"float": Q.support.cssFloat ? "cssFloat" : "styleFloat"},
        style: function (t, n, r, i) {
            if (t && 3 !== t.nodeType && 8 !== t.nodeType && t.style) {
                var o, a, s, u = Q.camelCase(n), c = t.style;
                if (n = Q.cssProps[u] || (Q.cssProps[u] = g(c, u)), s = Q.cssHooks[n] || Q.cssHooks[u], r === e) return s && "get" in s && (o = s.get(t, !1, i)) !== e ? o : c[n];
                if (a = typeof r, "string" === a && (o = pe.exec(r)) && (r = (o[1] + 1) * o[2] + parseFloat(Q.css(t, n)), a = "number"), !(null == r || "number" === a && isNaN(r) || ("number" === a && !Q.cssNumber[u] && (r += "px"), s && "set" in s && (r = s.set(t, r, i)) === e))) try {
                    c[n] = r
                } catch (l) {
                }
            }
        },
        css: function (t, n, r, i) {
            var o, a, s, u = Q.camelCase(n);
            return n = Q.cssProps[u] || (Q.cssProps[u] = g(t.style, u)), s = Q.cssHooks[n] || Q.cssHooks[u], s && "get" in s && (o = s.get(t, !0, i)), o === e && (o = ne(t, n)), "normal" === o && n in ve && (o = ve[n]), r || i !== e ? (a = parseFloat(o), r || Q.isNumeric(a) ? a || 0 : o) : o
        },
        swap: function (t, e, n) {
            var r, i, o = {};
            for (i in e) o[i] = t.style[i], t.style[i] = e[i];
            r = n.call(t);
            for (i in e) t.style[i] = o[i];
            return r
        }
    }), t.getComputedStyle ? ne = function (e, n) {
        var r, i, o, a, s = t.getComputedStyle(e, null), u = e.style;
        return s && (r = s[n], "" === r && !Q.contains(e.ownerDocument, e) && (r = Q.style(e, n)), fe.test(r) && ce.test(n) && (i = u.width, o = u.minWidth, a = u.maxWidth, u.minWidth = u.maxWidth = u.width = r, r = s.width, u.width = i, u.minWidth = o, u.maxWidth = a)), r
    } : B.documentElement.currentStyle && (ne = function (t, e) {
        var n, r, i = t.currentStyle && t.currentStyle[e], o = t.style;
        return null == i && o && o[e] && (i = o[e]), fe.test(i) && !se.test(e) && (n = o.left, r = t.runtimeStyle && t.runtimeStyle.left, r && (t.runtimeStyle.left = t.currentStyle.left), o.left = "fontSize" === e ? "1em" : i, i = o.pixelLeft + "px", o.left = n, r && (t.runtimeStyle.left = r)), "" === i ? "auto" : i
    }), Q.each(["height", "width"], function (t, e) {
        Q.cssHooks[e] = {
            get: function (t, n, r) {
                if (n) return 0 === t.offsetWidth && ue.test(ne(t, "display")) ? Q.swap(t, de, function () {
                    return b(t, e, r)
                }) : b(t, e, r)
            }, set: function (t, n, r) {
                return x(t, n, r ? _(t, e, r, Q.support.boxSizing && "border-box" === Q.css(t, "boxSizing")) : 0)
            }
        }
    }), Q.support.opacity || (Q.cssHooks.opacity = {
        get: function (t, e) {
            return ae.test((e && t.currentStyle ? t.currentStyle.filter : t.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : e ? "1" : ""
        }, set: function (t, e) {
            var n = t.style, r = t.currentStyle, i = Q.isNumeric(e) ? "alpha(opacity=" + 100 * e + ")" : "",
                o = r && r.filter || n.filter || "";
            n.zoom = 1, e >= 1 && "" === Q.trim(o.replace(oe, "")) && n.removeAttribute && (n.removeAttribute("filter"), r && !r.filter) || (n.filter = oe.test(o) ? o.replace(oe, i) : o + " " + i)
        }
    }), Q(function () {
        Q.support.reliableMarginRight || (Q.cssHooks.marginRight = {
            get: function (t, e) {
                return Q.swap(t, {display: "inline-block"}, function () {
                    if (e) return ne(t, "marginRight")
                })
            }
        }), !Q.support.pixelPosition && Q.fn.position && Q.each(["top", "left"], function (t, e) {
            Q.cssHooks[e] = {
                get: function (t, n) {
                    if (n) {
                        var r = ne(t, e);
                        return fe.test(r) ? Q(t).position()[e] + "px" : r
                    }
                }
            }
        })
    }), Q.expr && Q.expr.filters && (Q.expr.filters.hidden = function (t) {
        return 0 === t.offsetWidth && 0 === t.offsetHeight || !Q.support.reliableHiddenOffsets && "none" === (t.style && t.style.display || ne(t, "display"))
    }, Q.expr.filters.visible = function (t) {
        return !Q.expr.filters.hidden(t)
    }), Q.each({margin: "", padding: "", border: "Width"}, function (t, e) {
        Q.cssHooks[t + e] = {
            expand: function (n) {
                var r, i = "string" == typeof n ? n.split(" ") : [n], o = {};
                for (r = 0; r < 4; r++) o[t + ge[r] + e] = i[r] || i[r - 2] || i[0];
                return o
            }
        }, ce.test(t) || (Q.cssHooks[t + e].set = x)
    });
    var xe = /%20/g, _e = /\[\]$/, be = /\r?\n/g,
        we = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
        Te = /^(?:select|textarea)/i;
    Q.fn.extend({
        serialize: function () {
            return Q.param(this.serializeArray())
        }, serializeArray: function () {
            return this.map(function () {
                return this.elements ? Q.makeArray(this.elements) : this
            }).filter(function () {
                return this.name && !this.disabled && (this.checked || Te.test(this.nodeName) || we.test(this.type))
            }).map(function (t, e) {
                var n = Q(this).val();
                return null == n ? null : Q.isArray(n) ? Q.map(n, function (t, n) {
                    return {name: e.name, value: t.replace(be, "\r\n")}
                }) : {name: e.name, value: n.replace(be, "\r\n")}
            }).get()
        }
    }), Q.param = function (t, n) {
        var r, i = [], o = function (t, e) {
            e = Q.isFunction(e) ? e() : null == e ? "" : e, i[i.length] = encodeURIComponent(t) + "=" + encodeURIComponent(e)
        };
        if (n === e && (n = Q.ajaxSettings && Q.ajaxSettings.traditional), Q.isArray(t) || t.jquery && !Q.isPlainObject(t)) Q.each(t, function () {
            o(this.name, this.value)
        }); else for (r in t) T(r, t[r], n, o);
        return i.join("&").replace(xe, "+")
    };
    var Ee, Ne, Ae = /#.*$/, Ce = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
        Se = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/, ke = /^(?:GET|HEAD)$/, $e = /^\/\//,
        je = /\?/, Oe = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, De = /([?&])_=[^&]*/,
        Ie = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/, Me = Q.fn.load, Re = {}, Le = {}, Pe = ["*/"] + ["*"];
    try {
        Ne = H.href
    } catch (Fe) {
        Ne = B.createElement("a"), Ne.href = "", Ne = Ne.href
    }
    Ee = Ie.exec(Ne.toLowerCase()) || [], Q.fn.load = function (t, n, r) {
        if ("string" != typeof t && Me) return Me.apply(this, arguments);
        if (!this.length) return this;
        var i, o, a, s = this, u = t.indexOf(" ");
        return u >= 0 && (i = t.slice(u, t.length), t = t.slice(0, u)), Q.isFunction(n) ? (r = n, n = e) : n && "object" == typeof n && (o = "POST"), Q.ajax({
            url: t,
            type: o,
            dataType: "html",
            data: n,
            complete: function (t, e) {
                r && s.each(r, a || [t.responseText, e, t])
            }
        }).done(function (t) {
            a = arguments, s.html(i ? Q("<div>").append(t.replace(Oe, "")).find(i) : t)
        }), this
    }, Q.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function (t, e) {
        Q.fn[e] = function (t) {
            return this.on(e, t)
        }
    }), Q.each(["get", "post"], function (t, n) {
        Q[n] = function (t, r, i, o) {
            return Q.isFunction(r) && (o = o || i, i = r, r = e), Q.ajax({
                type: n,
                url: t,
                data: r,
                success: i,
                dataType: o
            })
        }
    }), Q.extend({
        getScript: function (t, n) {
            return Q.get(t, e, n, "script")
        },
        getJSON: function (t, e, n) {
            return Q.get(t, e, n, "json")
        },
        ajaxSetup: function (t, e) {
            return e ? A(t, Q.ajaxSettings) : (e = t, t = Q.ajaxSettings), A(t, e), t
        },
        ajaxSettings: {
            url: Ne,
            isLocal: Se.test(Ee[1]),
            global: !0,
            type: "GET",
            contentType: "application/x-www-form-urlencoded; charset=UTF-8",
            processData: !0,
            async: !0,
            accepts: {
                xml: "application/xml, text/xml",
                html: "text/html",
                text: "text/plain",
                json: "application/json, text/javascript",
                "*": Pe
            },
            contents: {xml: /xml/, html: /html/, json: /json/},
            responseFields: {xml: "responseXML", text: "responseText"},
            converters: {"* text": t.String, "text html": !0, "text json": Q.parseJSON, "text xml": Q.parseXML},
            flatOptions: {context: !0, url: !0}
        },
        ajaxPrefilter: E(Re),
        ajaxTransport: E(Le),
        ajax: function (t, n) {
            function r(t, n, r, a) {
                var c, f, y, x, b, T = n;
                2 !== _ && (_ = 2, u && clearTimeout(u), s = e, o = a || "", w.readyState = t > 0 ? 4 : 0, r && (x = C(p, w, r)), t >= 200 && t < 300 || 304 === t ? (p.ifModified && (b = w.getResponseHeader("Last-Modified"), b && (Q.lastModified[i] = b), b = w.getResponseHeader("Etag"), b && (Q.etag[i] = b)), 304 === t ? (T = "notmodified", c = !0) : (c = S(p, x), T = c.state, f = c.data, y = c.error, c = !y)) : (y = T, T && !t || (T = "error", t < 0 && (t = 0))), w.status = t, w.statusText = (n || T) + "", c ? v.resolveWith(h, [f, T, w]) : v.rejectWith(h, [w, T, y]), w.statusCode(m), m = e, l && d.trigger("ajax" + (c ? "Success" : "Error"), [w, p, c ? f : y]), g.fireWith(h, [w, T]), l && (d.trigger("ajaxComplete", [w, p]), --Q.active || Q.event.trigger("ajaxStop")))
            }

            "object" == typeof t && (n = t, t = e), n = n || {};
            var i, o, a, s, u, c, l, f, p = Q.ajaxSetup({}, n), h = p.context || p,
                d = h !== p && (h.nodeType || h instanceof Q) ? Q(h) : Q.event, v = Q.Deferred(),
                g = Q.Callbacks("once memory"), m = p.statusCode || {}, y = {}, x = {}, _ = 0, b = "canceled", w = {
                    readyState: 0, setRequestHeader: function (t, e) {
                        if (!_) {
                            var n = t.toLowerCase();
                            t = x[n] = x[n] || t, y[t] = e
                        }
                        return this
                    }, getAllResponseHeaders: function () {
                        return 2 === _ ? o : null
                    }, getResponseHeader: function (t) {
                        var n;
                        if (2 === _) {
                            if (!a) for (a = {}; n = Ce.exec(o);) a[n[1].toLowerCase()] = n[2];
                            n = a[t.toLowerCase()]
                        }
                        return n === e ? null : n
                    }, overrideMimeType: function (t) {
                        return _ || (p.mimeType = t), this
                    }, abort: function (t) {
                        return t = t || b, s && s.abort(t), r(0, t), this
                    }
                };
            if (v.promise(w), w.success = w.done, w.error = w.fail, w.complete = g.add, w.statusCode = function (t) {
                if (t) {
                    var e;
                    if (_ < 2) for (e in t) m[e] = [m[e], t[e]]; else e = t[w.status], w.always(e)
                }
                return this
            }, p.url = ((t || p.url) + "").replace(Ae, "").replace($e, Ee[1] + "//"), p.dataTypes = Q.trim(p.dataType || "*").toLowerCase().split(et), null == p.crossDomain && (c = Ie.exec(p.url.toLowerCase()) || !1, p.crossDomain = c && c.join(":") + (c[3] ? "" : "http:" === c[1] ? 80 : 443) !== Ee.join(":") + (Ee[3] ? "" : "http:" === Ee[1] ? 80 : 443)), p.data && p.processData && "string" != typeof p.data && (p.data = Q.param(p.data, p.traditional)), N(Re, p, n, w), 2 === _) return w;
            if (l = p.global, p.type = p.type.toUpperCase(), p.hasContent = !ke.test(p.type), l && 0 === Q.active++ && Q.event.trigger("ajaxStart"), !p.hasContent && (p.data && (p.url += (je.test(p.url) ? "&" : "?") + p.data, delete p.data), i = p.url, p.cache === !1)) {
                var T = Q.now(), E = p.url.replace(De, "$1_=" + T);
                p.url = E + (E === p.url ? (je.test(p.url) ? "&" : "?") + "_=" + T : "")
            }
            (p.data && p.hasContent && p.contentType !== !1 || n.contentType) && w.setRequestHeader("Content-Type", p.contentType), p.ifModified && (i = i || p.url, Q.lastModified[i] && w.setRequestHeader("If-Modified-Since", Q.lastModified[i]), Q.etag[i] && w.setRequestHeader("If-None-Match", Q.etag[i])), w.setRequestHeader("Accept", p.dataTypes[0] && p.accepts[p.dataTypes[0]] ? p.accepts[p.dataTypes[0]] + ("*" !== p.dataTypes[0] ? ", " + Pe + "; q=0.01" : "") : p.accepts["*"]);
            for (f in p.headers) w.setRequestHeader(f, p.headers[f]);
            if (!p.beforeSend || p.beforeSend.call(h, w, p) !== !1 && 2 !== _) {
                b = "abort";
                for (f in {success: 1, error: 1, complete: 1}) w[f](p[f]);
                if (s = N(Le, p, n, w)) {
                    w.readyState = 1, l && d.trigger("ajaxSend", [w, p]), p.async && p.timeout > 0 && (u = setTimeout(function () {
                        w.abort("timeout")
                    }, p.timeout));
                    try {
                        _ = 1, s.send(y, r)
                    } catch (A) {
                        if (!(_ < 2)) throw A;
                        r(-1, A)
                    }
                } else r(-1, "No Transport");
                return w
            }
            return w.abort()
        },
        active: 0,
        lastModified: {},
        etag: {}
    });
    var qe = [], Be = /\?/, He = /(=)\?(?=&|$)|\?\?/, ze = Q.now();
    Q.ajaxSetup({
        jsonp: "callback", jsonpCallback: function () {
            var t = qe.pop() || Q.expando + "_" + ze++;
            return this[t] = !0, t
        }
    }), Q.ajaxPrefilter("json jsonp", function (n, r, i) {
        var o, a, s, u = n.data, c = n.url, l = n.jsonp !== !1, f = l && He.test(c),
            p = l && !f && "string" == typeof u && !(n.contentType || "").indexOf("application/x-www-form-urlencoded") && He.test(u);
        if ("jsonp" === n.dataTypes[0] || f || p) return o = n.jsonpCallback = Q.isFunction(n.jsonpCallback) ? n.jsonpCallback() : n.jsonpCallback, a = t[o], f ? n.url = c.replace(He, "$1" + o) : p ? n.data = u.replace(He, "$1" + o) : l && (n.url += (Be.test(c) ? "&" : "?") + n.jsonp + "=" + o), n.converters["script json"] = function () {
            return s || Q.error(o + " was not called"), s[0]
        }, n.dataTypes[0] = "json", t[o] = function () {
            s = arguments
        }, i.always(function () {
            t[o] = a, n[o] && (n.jsonpCallback = r.jsonpCallback, qe.push(o)), s && Q.isFunction(a) && a(s[0]), s = a = e
        }), "script"
    }), Q.ajaxSetup({
        accepts: {script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},
        contents: {script: /javascript|ecmascript/},
        converters: {
            "text script": function (t) {
                return Q.globalEval(t), t
            }
        }
    }), Q.ajaxPrefilter("script", function (t) {
        t.cache === e && (t.cache = !1), t.crossDomain && (t.type = "GET", t.global = !1)
    }), Q.ajaxTransport("script", function (t) {
        if (t.crossDomain) {
            var n, r = B.head || B.getElementsByTagName("head")[0] || B.documentElement;
            return {
                send: function (i, o) {
                    n = B.createElement("script"), n.async = "async", t.scriptCharset && (n.charset = t.scriptCharset), n.src = t.url, n.onload = n.onreadystatechange = function (t, i) {
                        (i || !n.readyState || /loaded|complete/.test(n.readyState)) && (n.onload = n.onreadystatechange = null, r && n.parentNode && r.removeChild(n), n = e, i || o(200, "success"))
                    }, r.insertBefore(n, r.firstChild)
                }, abort: function () {
                    n && n.onload(0, 1)
                }
            }
        }
    });
    var We, Ue = !!t.ActiveXObject && function () {
        for (var t in We) We[t](0, 1)
    }, Ge = 0;
    Q.ajaxSettings.xhr = t.ActiveXObject ? function () {
        return !this.isLocal && k() || $()
    } : k, function (t) {
        Q.extend(Q.support, {ajax: !!t, cors: !!t && "withCredentials" in t})
    }(Q.ajaxSettings.xhr()), Q.support.ajax && Q.ajaxTransport(function (n) {
        if (!n.crossDomain || Q.support.cors) {
            var r;
            return {
                send: function (i, o) {
                    var a, s, u = n.xhr();
                    if (n.username ? u.open(n.type, n.url, n.async, n.username, n.password) : u.open(n.type, n.url, n.async), n.xhrFields) for (s in n.xhrFields) u[s] = n.xhrFields[s];
                    n.mimeType && u.overrideMimeType && u.overrideMimeType(n.mimeType), !n.crossDomain && !i["X-Requested-With"] && (i["X-Requested-With"] = "XMLHttpRequest");
                    try {
                        for (s in i) u.setRequestHeader(s, i[s])
                    } catch (c) {
                    }
                    u.send(n.hasContent && n.data || null), r = function (t, i) {
                        var s, c, l, f, p;
                        try {
                            if (r && (i || 4 === u.readyState)) if (r = e, a && (u.onreadystatechange = Q.noop, Ue && delete We[a]), i) 4 !== u.readyState && u.abort(); else {
                                s = u.status, l = u.getAllResponseHeaders(), f = {}, p = u.responseXML, p && p.documentElement && (f.xml = p);
                                try {
                                    f.text = u.responseText
                                } catch (t) {
                                }
                                try {
                                    c = u.statusText
                                } catch (h) {
                                    c = ""
                                }
                                s || !n.isLocal || n.crossDomain ? 1223 === s && (s = 204) : s = f.text ? 200 : 404
                            }
                        } catch (d) {
                            i || o(-1, d)
                        }
                        f && o(s, c, f, l)
                    }, n.async ? 4 === u.readyState ? setTimeout(r, 0) : (a = ++Ge, Ue && (We || (We = {}, Q(t).unload(Ue)), We[a] = r), u.onreadystatechange = r) : r()
                }, abort: function () {
                    r && r(0, 1)
                }
            }
        }
    });
    var Je, Xe, Ve = /^(?:toggle|show|hide)$/, Ye = new RegExp("^(?:([-+])=|)(" + Z + ")([a-z%]*)$", "i"),
        Ke = /queueHooks$/, Qe = [M], Ze = {
            "*": [function (t, e) {
                var n, r, i = this.createTween(t, e), o = Ye.exec(e), a = i.cur(), s = +a || 0, u = 1, c = 20;
                if (o) {
                    if (n = +o[2], r = o[3] || (Q.cssNumber[t] ? "" : "px"), "px" !== r && s) {
                        s = Q.css(i.elem, t, !0) || n || 1;
                        do u = u || ".5", s /= u, Q.style(i.elem, t, s + r); while (u !== (u = i.cur() / a) && 1 !== u && --c)
                    }
                    i.unit = r, i.start = s, i.end = o[1] ? s + (o[1] + 1) * n : n
                }
                return i
            }]
        };
    Q.Animation = Q.extend(D, {
        tweener: function (t, e) {
            Q.isFunction(t) ? (e = t, t = ["*"]) : t = t.split(" ");
            for (var n, r = 0, i = t.length; r < i; r++) n = t[r], Ze[n] = Ze[n] || [], Ze[n].unshift(e)
        }, prefilter: function (t, e) {
            e ? Qe.unshift(t) : Qe.push(t)
        }
    }), Q.Tween = R, R.prototype = {
        constructor: R, init: function (t, e, n, r, i, o) {
            this.elem = t, this.prop = n, this.easing = i || "swing", this.options = e, this.start = this.now = this.cur(), this.end = r, this.unit = o || (Q.cssNumber[n] ? "" : "px")
        }, cur: function () {
            var t = R.propHooks[this.prop];
            return t && t.get ? t.get(this) : R.propHooks._default.get(this)
        }, run: function (t) {
            var e, n = R.propHooks[this.prop];
            return this.options.duration ? this.pos = e = Q.easing[this.easing](t, this.options.duration * t, 0, 1, this.options.duration) : this.pos = e = t, this.now = (this.end - this.start) * e + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : R.propHooks._default.set(this), this
        }
    }, R.prototype.init.prototype = R.prototype, R.propHooks = {
        _default: {
            get: function (t) {
                var e;
                return null == t.elem[t.prop] || t.elem.style && null != t.elem.style[t.prop] ? (e = Q.css(t.elem, t.prop, !1, ""), e && "auto" !== e ? e : 0) : t.elem[t.prop]
            }, set: function (t) {
                Q.fx.step[t.prop] ? Q.fx.step[t.prop](t) : t.elem.style && (null != t.elem.style[Q.cssProps[t.prop]] || Q.cssHooks[t.prop]) ? Q.style(t.elem, t.prop, t.now + t.unit) : t.elem[t.prop] = t.now
            }
        }
    }, R.propHooks.scrollTop = R.propHooks.scrollLeft = {
        set: function (t) {
            t.elem.nodeType && t.elem.parentNode && (t.elem[t.prop] = t.now)
        }
    }, Q.each(["toggle", "show", "hide"], function (t, e) {
        var n = Q.fn[e];
        Q.fn[e] = function (r, i, o) {
            return null == r || "boolean" == typeof r || !t && Q.isFunction(r) && Q.isFunction(i) ? n.apply(this, arguments) : this.animate(L(e, !0), r, i, o)
        }
    }), Q.fn.extend({
        fadeTo: function (t, e, n, r) {
            return this.filter(m).css("opacity", 0).show().end().animate({opacity: e}, t, n, r)
        }, animate: function (t, e, n, r) {
            var i = Q.isEmptyObject(t), o = Q.speed(e, n, r), a = function () {
                var e = D(this, Q.extend({}, t), o);
                i && e.stop(!0)
            };
            return i || o.queue === !1 ? this.each(a) : this.queue(o.queue, a)
        }, stop: function (t, n, r) {
            var i = function (t) {
                var e = t.stop;
                delete t.stop, e(r)
            };
            return "string" != typeof t && (r = n, n = t, t = e), n && t !== !1 && this.queue(t || "fx", []), this.each(function () {
                var e = !0, n = null != t && t + "queueHooks", o = Q.timers, a = Q._data(this);
                if (n) a[n] && a[n].stop && i(a[n]); else for (n in a) a[n] && a[n].stop && Ke.test(n) && i(a[n]);
                for (n = o.length; n--;) o[n].elem === this && (null == t || o[n].queue === t) && (o[n].anim.stop(r), e = !1, o.splice(n, 1));
                (e || !r) && Q.dequeue(this, t)
            })
        }
    }), Q.each({
        slideDown: L("show"),
        slideUp: L("hide"),
        slideToggle: L("toggle"),
        fadeIn: {opacity: "show"},
        fadeOut: {opacity: "hide"},
        fadeToggle: {opacity: "toggle"}
    }, function (t, e) {
        Q.fn[t] = function (t, n, r) {
            return this.animate(e, t, n, r)
        }
    }), Q.speed = function (t, e, n) {
        var r = t && "object" == typeof t ? Q.extend({}, t) : {
            complete: n || !n && e || Q.isFunction(t) && t,
            duration: t,
            easing: n && e || e && !Q.isFunction(e) && e
        };
        return r.duration = Q.fx.off ? 0 : "number" == typeof r.duration ? r.duration : r.duration in Q.fx.speeds ? Q.fx.speeds[r.duration] : Q.fx.speeds._default, null != r.queue && r.queue !== !0 || (r.queue = "fx"), r.old = r.complete, r.complete = function () {
            Q.isFunction(r.old) && r.old.call(this), r.queue && Q.dequeue(this, r.queue)
        }, r
    }, Q.easing = {
        linear: function (t) {
            return t
        }, swing: function (t) {
            return .5 - Math.cos(t * Math.PI) / 2
        }
    }, Q.timers = [], Q.fx = R.prototype.init, Q.fx.tick = function () {
        for (var t, e = Q.timers, n = 0; n < e.length; n++) t = e[n], !t() && e[n] === t && e.splice(n--, 1);
        e.length || Q.fx.stop()
    }, Q.fx.timer = function (t) {
        t() && Q.timers.push(t) && !Xe && (Xe = setInterval(Q.fx.tick, Q.fx.interval))
    }, Q.fx.interval = 13, Q.fx.stop = function () {
        clearInterval(Xe), Xe = null
    }, Q.fx.speeds = {
        slow: 600,
        fast: 200,
        _default: 400
    }, Q.fx.step = {}, Q.expr && Q.expr.filters && (Q.expr.filters.animated = function (t) {
        return Q.grep(Q.timers, function (e) {
            return t === e.elem
        }).length
    });
    var tn = /^(?:body|html)$/i;
    Q.fn.offset = function (t) {
        if (arguments.length) return t === e ? this : this.each(function (e) {
            Q.offset.setOffset(this, t, e)
        });
        var n, r, i, o, a, s, u, c = {top: 0, left: 0}, l = this[0], f = l && l.ownerDocument;
        if (f) return (r = f.body) === l ? Q.offset.bodyOffset(l) : (n = f.documentElement, Q.contains(n, l) ? ("undefined" != typeof l.getBoundingClientRect && (c = l.getBoundingClientRect()), i = P(f), o = n.clientTop || r.clientTop || 0, a = n.clientLeft || r.clientLeft || 0, s = i.pageYOffset || n.scrollTop, u = i.pageXOffset || n.scrollLeft, {
            top: c.top + s - o,
            left: c.left + u - a
        }) : c)
    }, Q.offset = {
        bodyOffset: function (t) {
            var e = t.offsetTop, n = t.offsetLeft;
            return Q.support.doesNotIncludeMarginInBodyOffset && (e += parseFloat(Q.css(t, "marginTop")) || 0, n += parseFloat(Q.css(t, "marginLeft")) || 0), {
                top: e,
                left: n
            }
        }, setOffset: function (t, e, n) {
            var r = Q.css(t, "position");
            "static" === r && (t.style.position = "relative");
            var i, o, a = Q(t), s = a.offset(), u = Q.css(t, "top"), c = Q.css(t, "left"),
                l = ("absolute" === r || "fixed" === r) && Q.inArray("auto", [u, c]) > -1, f = {}, p = {};
            l ? (p = a.position(), i = p.top, o = p.left) : (i = parseFloat(u) || 0, o = parseFloat(c) || 0), Q.isFunction(e) && (e = e.call(t, n, s)), null != e.top && (f.top = e.top - s.top + i), null != e.left && (f.left = e.left - s.left + o), "using" in e ? e.using.call(t, f) : a.css(f)
        }
    }, Q.fn.extend({
        position: function () {
            if (this[0]) {
                var t = this[0], e = this.offsetParent(), n = this.offset(),
                    r = tn.test(e[0].nodeName) ? {top: 0, left: 0} : e.offset();
                return n.top -= parseFloat(Q.css(t, "marginTop")) || 0, n.left -= parseFloat(Q.css(t, "marginLeft")) || 0, r.top += parseFloat(Q.css(e[0], "borderTopWidth")) || 0, r.left += parseFloat(Q.css(e[0], "borderLeftWidth")) || 0, {
                    top: n.top - r.top,
                    left: n.left - r.left
                }
            }
        }, offsetParent: function () {
            return this.map(function () {
                for (var t = this.offsetParent || B.body; t && !tn.test(t.nodeName) && "static" === Q.css(t, "position");) t = t.offsetParent;
                return t || B.body
            })
        }
    }), Q.each({scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function (t, n) {
        var r = /Y/.test(n);
        Q.fn[t] = function (i) {
            return Q.access(this, function (t, i, o) {
                var a = P(t);
                return o === e ? a ? n in a ? a[n] : a.document.documentElement[i] : t[i] : void (a ? a.scrollTo(r ? Q(a).scrollLeft() : o, r ? o : Q(a).scrollTop()) : t[i] = o)
            }, t, i, arguments.length, null)
        }
    }), Q.each({Height: "height", Width: "width"}, function (t, n) {
        Q.each({padding: "inner" + t, content: n, "": "outer" + t}, function (r, i) {
            Q.fn[i] = function (i, o) {
                var a = arguments.length && (r || "boolean" != typeof i),
                    s = r || (i === !0 || o === !0 ? "margin" : "border");
                return Q.access(this, function (n, r, i) {
                    var o;
                    return Q.isWindow(n) ? n.document.documentElement["client" + t] : 9 === n.nodeType ? (o = n.documentElement, Math.max(n.body["scroll" + t], o["scroll" + t], n.body["offset" + t], o["offset" + t], o["client" + t])) : i === e ? Q.css(n, r, i, s) : Q.style(n, r, i, s)
                }, n, a ? i : e, a, null)
            }
        })
    }), t.jQuery = t.$ = Q, "function" == typeof define && define.amd && define.amd.jQuery && define("jquery", [], function () {
        return Q
    })
}(window), function (t, e) {
    "object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : "object" == typeof exports ? exports.Regular = e() : t.Regular = e()
}(this, function () {
    return function (t) {
        function e(r) {
            if (n[r]) return n[r].exports;
            var i = n[r] = {exports: {}, id: r, loaded: !1};
            return t[r].call(i.exports, i, i.exports, e), i.loaded = !0, i.exports
        }

        var n = {};
        return e.m = t, e.c = n, e.p = "", e(0)
    }([function (t, e, n) {
        var r = n(1), i = n(2), o = t.exports = n(3), a = o.Parser, s = o.Lexer;
        r.browser && (n(6), n(7), n(8), o.dom = n(4)), o.env = r, o.util = n(5), o.parse = function (t, e) {
            e = e || {}, (e.BEGIN || e.END) && (e.BEGIN && (i.BEGIN = e.BEGIN), e.END && (i.END = e.END), s.setup());
            var n = new a(t).parse();
            return e.stringify ? JSON.stringify(n) : n
        }
    }, function (t, e, n) {
        var r = n(5);
        e.svg = function () {
            return "undefined" != typeof document && document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1")
        }(), e.browser = "undefined" != typeof document && document.nodeType, e.exprCache = r.cache(1e3), e.isRunning = !1
    }, function (t, e, n) {
        t.exports = {BEGIN: "{", END: "}", PRECOMPILE: !1}
    }, function (t, e, n) {
        var r = n(1), i = n(12), o = n(13), a = n(2), s = n(5), u = n(14), c = {};
        if (r.browser) {
            var l = n(4), f = n(9), p = n(10), h = l.doc;
            c = n(15)
        }
        var d = n(16), v = n(17), g = n(18), m = n(19), y = function (t, e) {
            var n = r.isRunning;
            r.isRunning = !0;
            var i, a;
            t = t || {};
            var u = "string" == typeof this.template && !t.template;
            e = e || {}, t.data = t.data || {}, t.computed = t.computed || {}, t.events = t.events || {}, this.data && s.extend(t.data, this.data), this.computed && s.extend(t.computed, this.computed), this.events && s.extend(t.events, this.events), s.extend(this, t, !0), this.$parent && this.$parent._append(this), this._children = [], this.$refs = {}, a = this.template, "string" == typeof a && a.length < 16 && (i = l.find(a)) && (a = i.innerHTML), a && a.nodeType && (a = a.innerHTML), "string" == typeof a && (a = new o(a).parse(), u ? this.constructor.prototype.template = a : delete this.template), this.computed = x(this.computed), this.$root = this.$root || this, this.events && this.$on(this.events), this.$emit("$config"), this.config && this.config(this.data), this.$emit("$afterConfig");
            var f = this._body;
            this._body = null, f && f.ast && f.ast.length && (this.$body = s.getCompileFn(f.ast, f.ctx, {
                outer: this,
                namespace: e.namespace,
                extra: e.extra,
                record: !0
            })), a && (this.group = this.$compile(a, {namespace: e.namespace}), c.node(this)), this.$parent || this.$update(), this.$ready = !0, this.$emit("$init"), this.init && this.init(this.data), this.$emit("$afterInit"), r.isRunning = n
        };
        f && (f.Regular = y), s.extend(y, {
            _directives: {__regexp__: []},
            _plugins: {},
            _protoInheritCache: ["directive", "use"],
            __after__: function (t, e) {
                var n;
                if (this.__after__ = t.__after__, e.name && y.component(e.name, this), n = e.template) {
                    var r, i;
                    "string" == typeof n && n.length < 16 && (r = l.find(n)) && (n = r), n && n.nodeType && ((i = l.attr(n, "name")) && y.component(i, this), n = n.innerHTML), "string" == typeof n && (this.prototype.template = a.PRECOMPILE ? new o(n).parse() : n)
                }
                e.computed && (this.prototype.computed = x(e.computed)), y._inheritConfig(this, t)
            },
            directive: function (t, e) {
                if ("object" === s.typeOf(t)) {
                    for (var n in t) t.hasOwnProperty(n) && this.directive(n, t[n]);
                    return this
                }
                var r, i = s.typeOf(t), o = this._directives;
                if (null != e) return "function" == typeof e && (e = {link: e}), "string" === i ? o[t] = e : "regexp" === i && (e.regexp = t, o.__regexp__.push(e)), this;
                if ("string" === i && (r = o[t])) return r;
                for (var a = o.__regexp__, u = 0, c = a.length; u < c; u++) {
                    r = a[u];
                    var l = r.regexp.test(t);
                    if (l) return r
                }
            },
            plugin: function (t, e) {
                var n = this._plugins;
                return null == e ? n[t] : (n[t] = e, this)
            },
            use: function (t) {
                return "string" == typeof t && (t = y.plugin(t)), "function" != typeof t ? this : (t(this, y), this)
            },
            config: function (t, e) {
                var n = !1;
                if ("object" == typeof t) for (var r in t) "END" !== r && "BEGIN" !== r || (n = !0),
                    a[r] = t[r];
                n && i.setup()
            },
            expression: g.expression,
            Parser: o,
            Lexer: i,
            _addProtoInheritCache: function (t, e) {
                if (Array.isArray(t)) return t.forEach(y._addProtoInheritCache);
                var n = "_" + t + "s";
                y._protoInheritCache.push(t), y[n] = {}, y[t] || (y[t] = function (r, i) {
                    var o = this[n];
                    if ("object" == typeof r) {
                        for (var a in r) r.hasOwnProperty(a) && this[t](a, r[a]);
                        return this
                    }
                    return null == i ? o[r] : (o[r] = e ? e(i) : i, this)
                })
            },
            _inheritConfig: function (t, e) {
                var n = y._protoInheritCache, r = s.slice(n);
                return r.forEach(function (n) {
                    t[n] = e[n];
                    var r = "_" + n + "s";
                    e[r] && (t[r] = s.createObject(e[r]))
                }), t
            }
        }), u(y), y._addProtoInheritCache("component"), y._addProtoInheritCache("filter", function (t) {
            return "function" == typeof t ? {get: t} : t
        }), d.mixTo(y), v.mixTo(y), y.implement({
            init: function () {
            }, config: function () {
            }, destroy: function () {
                this.$emit("$destroy"), this.group && this.group.destroy(!0), this.group = null, this.parentNode = null, this._watchers = null, this._children = [];
                var t = this.$parent;
                if (t) {
                    var e = t._children.indexOf(this);
                    t._children.splice(e, 1)
                }
                this.$parent = null, this.$root = null, this._handles = null, this.$refs = null
            }, $compile: function (t, e) {
                e = e || {}, "string" == typeof t && (t = new o(t).parse());
                var n, r = this.__ext__, i = e.record;
                e.extra && (this.__ext__ = e.extra), i && this._record();
                var a = this._walk(t, e);
                if (i) {
                    n = this._release();
                    var s = this;
                    n.length && (a.ondestroy = function () {
                        s.$unwatch(n)
                    })
                }
                return e.extra && (this.__ext__ = r), a
            }, $bind: function (t, e, n) {
                var r = s.typeOf(e);
                if ("expression" === e.type || "string" === r) this._bind(t, e, n); else if ("array" === r) for (var i = 0, o = e.length; i < o; i++) this._bind(t, e[i]); else if ("object" === r) for (var i in e) e.hasOwnProperty(i) && this._bind(t, i, e[i]);
                return t.$update(), this
            }, $unbind: function () {
            }, $inject: c.inject, $mute: function (t) {
                t = !!t;
                var e = t === !1 && this._mute;
                return this._mute = !!t, e && this.$update(), this
            }, _bind: function (t, e, n) {
                var r = this;
                if (!(t && t instanceof y)) throw"$bind() should pass Regular component as first argument";
                if (!e) throw"$bind() should  pass as least one expression to bind";
                if (n || (n = e), e = g.expression(e), n = g.expression(n), n.set) {
                    var i = this.$watch(e, function (e) {
                        t.$update(n, e)
                    });
                    t.$on("$destroy", function () {
                        r.$unwatch(i)
                    })
                }
                if (e.set) {
                    var o = t.$watch(n, function (t) {
                        r.$update(e, t)
                    });
                    this.$on("$destroy", t.$unwatch.bind(t, o))
                }
                n.set(t, e.get(this))
            }, _walk: function (t, e) {
                if ("array" === s.typeOf(t)) {
                    for (var n = [], r = 0, i = t.length; r < i; r++) n.push(this._walk(t[r], e));
                    return new p(n)
                }
                return "string" == typeof t ? h.createTextNode(t) : f[t.type || "default"].call(this, t, e)
            }, _append: function (t) {
                this._children.push(t), t.$parent = this
            }, _handleEvent: function (t, e, n, r) {
                var i, o = this.constructor, a = "function" != typeof n ? s.handleEvent.call(this, n, e) : n,
                    u = o.event(e);
                return u ? i = u.call(this, t, a, r) : l.on(t, e, a), u ? i : function () {
                    l.off(t, e, a)
                }
            }, _touchExpr: function (t) {
                var e, n = this.__ext__, r = {};
                if ("expression" !== t.type || t.touched) return t;
                if (e = t.get || (t.get = new Function(s.ctxName, s.extName, s.prefix + "return (" + t.body + ")")), r.get = n ? function (t) {
                    return e(t, n)
                } : e, t.setbody && !t.set) {
                    var i = t.setbody;
                    t.set = function (e, n, r) {
                        return t.set = new Function(s.ctxName, s.setName, s.extName, s.prefix + i), t.set(e, n, r)
                    }, t.setbody = null
                }
                return t.set && (r.set = n ? function (e, r) {
                    return t.set(e, r, n)
                } : t.set), s.extend(r, {type: "expression", touched: !0, once: t.once || t.constant}), r
            }, _f_: function (t) {
                var e = this.constructor, n = e.filter(t);
                if (!n) throw Error("filter " + t + " is undefined");
                return n
            }, _sg_: function (t, e, n) {
                if ("undefined" != typeof n) {
                    var r = this.computed, i = r[t];
                    if (i) {
                        if ("expression" !== i.type || i.get || this._touchExpr(i), i.get) return i.get(this);
                        s.log("the computed '" + t + "' don't define the get function,  get data." + t + " altnately", "warn")
                    }
                }
                if ("undefined" != typeof e && "undefined" != typeof t) return n && "undefined" != typeof n[t] ? n[t] : e[t]
            }, _ss_: function (t, e, n, r, i) {
                var o, i = this.computed, r = r || "=", a = i ? i[t] : null;
                if ("=" !== r) switch (o = a ? a.get(this) : n[t], r) {
                    case"+=":
                        e = o + e;
                        break;
                    case"-=":
                        e = o - e;
                        break;
                    case"*=":
                        e = o * e;
                        break;
                    case"/=":
                        e = o / e;
                        break;
                    case"%=":
                        e = o % e
                }
                if (a) {
                    if (a.set) return a.set(this, e);
                    s.log("the computed '" + t + "' don't define the set function,  assign data." + t + " altnately", "warn")
                }
                return n[t] = e, e
            }
        }), y.prototype.inject = function () {
            return s.log("use $inject instead of inject", "error"), this.$inject.apply(this, arguments)
        }, y.filter(m), t.exports = y;
        var x = function () {
            function t(t) {
                return function (e) {
                    return t.call(e, e.data)
                }
            }

            function e(t) {
                return function (e, n) {
                    return t.call(e, n, e.data), n
                }
            }

            return function (n) {
                if (n) {
                    var r, i, o, a = {};
                    for (var s in n) r = n[s], o = typeof r, "expression" !== r.type ? "string" === o ? a[s] = g.expression(r) : (i = a[s] = {type: "expression"}, "function" === o ? i.get = t(r) : (r.get && (i.get = t(r.get)), r.set && (i.set = e(r.set)))) : a[s] = r;
                    return a
                }
            }
        }()
    }, function (t, e, n) {
        function r(t) {
            return ("" + t).replace(/-\D/g, function (t) {
                return t.charAt(1).toUpperCase()
            })
        }

        function i(t, e) {
            return "change" === e && u.msie < 9 && t && t.tagName && "input" === t.tagName.toLowerCase() && ("checkbox" === t.type || "radio" === t.type) ? "click" : e
        }

        function o(t) {
            if (t = t || window.event, t._fixed) return t;
            this.event = t, this.target = t.target || t.srcElement;
            var e = this.type = t.type, n = this.button = t.button;
            if (g.test(e) && (this.pageX = null != t.pageX ? t.pageX : t.clientX + m.scrollLeft, this.pageY = null != t.pageX ? t.pageY : t.clientY + m.scrollTop, "mouseover" === e || "mouseout" === e)) {
                for (var r = t.relatedTarget || t[("mouseover" === e ? "from" : "to") + "Element"]; r && 3 === r.nodeType;) r = r.parentNode;
                this.relatedTarget = r
            }
            "DOMMouseScroll" !== e && "mousewheel" !== e || (this.wheelDelta = t.wheelDelta ? t.wheelDelta / 120 : -(t.detail || 0) / 3), this.which = t.which || t.keyCode, this.which || void 0 === n || (this.which = 1 & n ? 1 : 2 & n ? 3 : 4 & n ? 2 : 0), this._fixed = !0
        }

        var a, s, u = t.exports, c = n(1), l = n(5), f = n(11), p = document.createElement("div"), h = function () {
        }, d = f.NAMESPACE;
        u.body = document.body, u.doc = document, u.tNode = p, p.addEventListener ? (a = function (t, e, n) {
            t.addEventListener(e, n, !1)
        }, s = function (t, e, n) {
            t.removeEventListener(e, n, !1)
        }) : (a = function (t, e, n) {
            t.attachEvent("on" + e, n)
        }, s = function (t, e, n) {
            t.detachEvent("on" + e, n)
        }), u.msie = parseInt((/msie (\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1]), isNaN(u.msie) && (u.msie = parseInt((/trident\/.*; rv:(\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1])), u.find = function (t) {
            if (document.querySelector) try {
                return document.querySelector(t)
            } catch (e) {
            }
            if (t.indexOf("#") !== -1) return document.getElementById(t.slice(1))
        }, u.inject = function (t, e, n) {
            if (n = n || "bottom", t) {
                if (Array.isArray(t)) {
                    var r = t;
                    t = u.fragment();
                    for (var i = 0, o = r.length; i < o; i++) t.appendChild(r[i])
                }
                var a, s;
                switch (n) {
                    case"bottom":
                        e.appendChild(t);
                        break;
                    case"top":
                        (a = e.firstChild) ? e.insertBefore(t, e.firstChild) : e.appendChild(t);
                        break;
                    case"after":
                        (s = e.nextSibling) ? s.parentNode.insertBefore(t, s) : e.parentNode.appendChild(t);
                        break;
                    case"before":
                        e.parentNode.insertBefore(t, e)
                }
            }
        }, u.id = function (t) {
            return document.getElementById(t)
        }, u.create = function (t, e, n) {
            if ("svg" === e) {
                if (!c.svg) throw Error("the env need svg support");
                e = d.svg
            }
            return e ? document.createElementNS(e, t) : document.createElement(t)
        }, u.fragment = function () {
            return document.createDocumentFragment()
        };
        var v = {
            "class": function (t, e) {
                "className" in t && (!t.namespaceURI || t.namespaceURI === d.html) ? t.className = e || "" : t.setAttribute("class", e)
            }, "for": function (t, e) {
                "htmlFor" in t ? t.htmlFor = e : t.setAttribute("for", e)
            }, style: function (t, e) {
                t.style ? t.style.cssText = e : t.setAttribute("style", e)
            }, value: function (t, e) {
                t.value = null != e ? e : ""
            }
        };
        u.attr = function (t, e, n) {
            if (l.isBooleanAttr(e)) {
                if ("undefined" == typeof n) return t[e] || (t.attributes.getNamedItem(e) || h).specified ? e : void 0;
                n ? (t[e] = !0, t.setAttribute(e, e), u.msie && u.msie <= 7 && (t.defaultChecked = !0)) : (t[e] = !1, t.removeAttribute(e))
            } else if ("undefined" != typeof n) v[e] ? v[e](t, n) : null === n ? t.removeAttribute(e) : t.setAttribute(e, n); else if (t.getAttribute) {
                var r = t.getAttribute(e, 2);
                return null === r ? void 0 : r
            }
        }, u.on = function (t, e, n) {
            var r = e.split(" ");
            n.real = function (e) {
                var r = new o(e);
                r.origin = t, n.call(t, r)
            }, r.forEach(function (e) {
                e = i(t, e), a(t, e, n.real)
            })
        }, u.off = function (t, e, n) {
            var r = e.split(" ");
            n = n.real || n, r.forEach(function (e) {
                e = i(t, e), s(t, e, n)
            })
        }, u.text = function () {
            var t = {};
            return u.msie && u.msie < 9 ? (t[1] = "innerText", t[3] = "nodeValue") : t[1] = t[3] = "textContent", function (e, n) {
                var r = t[e.nodeType];
                return null == n ? r ? e[r] : "" : void (e[r] = n)
            }
        }(), u.html = function (t, e) {
            return "undefined" == typeof e ? t.innerHTML : void (t.innerHTML = e)
        }, u.replace = function (t, e) {
            e.parentNode && e.parentNode.replaceChild(t, e)
        }, u.remove = function (t) {
            t.parentNode && t.parentNode.removeChild(t)
        }, u.css = function (t, e, n) {
            if ("object" !== l.typeOf(e)) {
                if ("undefined" == typeof n) {
                    var i;
                    return u.msie <= 8 && (i = t.currentStyle && t.currentStyle[e], "" === i && (i = "auto")), i = i || t.style[e], u.msie <= 8 && (i = "" === i ? void 0 : i), i
                }
                e = r(e), e && (t.style[e] = n)
            } else for (var o in e) e.hasOwnProperty(o) && u.css(t, o, e[o])
        }, u.addClass = function (t, e) {
            var n = t.className || "";
            (" " + n + " ").indexOf(" " + e + " ") === -1 && (t.className = n ? n + " " + e : e)
        }, u.delClass = function (t, e) {
            var n = t.className || "";
            t.className = (" " + n + " ").replace(" " + e + " ", " ").trim()
        }, u.hasClass = function (t, e) {
            var n = t.className || "";
            return (" " + n + " ").indexOf(" " + e + " ") !== -1
        };
        var g = /^(?:click|dblclick|contextmenu|DOMMouseScroll|mouse(?:\w+))$/, m = document;
        m = m.compatMode && "CSS1Compat" !== m.compatMode ? m.body : m.documentElement, l.extend(o.prototype, {
            immediateStop: l.isFalse,
            stop: function () {
                this.preventDefault().stopPropagation()
            },
            preventDefault: function () {
                return this.event.preventDefault ? this.event.preventDefault() : this.event.returnValue = !1, this
            },
            stopPropagation: function () {
                return this.event.stopPropagation ? this.event.stopPropagation() : this.event.cancelBubble = !0, this
            },
            stopImmediatePropagation: function () {
                this.event.stopImmediatePropagation && this.event.stopImmediatePropagation()
            }
        }), u.nextFrame = function () {
            var t = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (t) {
                    setTimeout(t, 16)
                },
                e = window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelRequestAnimationFrame || function (t) {
                    clearTimeout(t)
                };
            return function (n) {
                var r = t(n);
                return function () {
                    e(r)
                }
            }
        }();
        var y;
        u.nextReflow = u.msie ? function (t) {
            return u.nextFrame(function () {
                y = document.body.offsetWidth, t()
            })
        } : u.nextFrame
    }, function (t, e, n) {
        (function (e) {
            function r(t, e) {
                "undefined" != typeof console && console[e || "log"](t)
            }

            n(20)();
            var i = t.exports, o = n(21), a = [].slice, s = {}.toString, u = "undefined" != typeof window ? window : e;
            i.noop = function () {
            }, i.uid = function () {
                var t = 0;
                return function () {
                    return t++
                }
            }(), i.extend = function (t, e, n) {
                for (var r in e) "undefined" != typeof t[r] && n !== !0 || (t[r] = e[r]);
                return t
            }, i.keys = function (t) {
                if (Object.keys) return Object.keys(t);
                var e = [];
                for (var n in t) t.hasOwnProperty(n) && e.push(n);
                return e
            }, i.varName = "d", i.setName = "p_", i.ctxName = "c", i.extName = "e", i.rWord = /^[\$\w]+$/, i.rSimpleAccessor = /^[\$\w]+(\.[\$\w]+)*$/, i.nextTick = "function" == typeof setImmediate ? setImmediate.bind(u) : function (t) {
                setTimeout(t, 0)
            }, i.prefix = "var " + i.varName + "=" + i.ctxName + ".data;" + i.extName + "=" + i.extName + "||'';", i.slice = function (t, e, n) {
                for (var r = [], i = e || 0, o = n || t.length; i < o; i++) {
                    var a = t[i];
                    r.push(a)
                }
                return r
            }, i.typeOf = function (t) {
                return null == t ? String(t) : s.call(t).slice(8, -1).toLowerCase()
            }, i.makePredicate = function (t, e) {
                function n(t) {
                    if (1 === t.length) return r += "return str === '" + t[0] + "';";
                    r += "switch(str){";
                    for (var e = 0; e < t.length; ++e) r += "case '" + t[e] + "':";
                    r += "return true}return false;"
                }

                "string" == typeof t && (t = t.split(" "));
                var r = "", i = [];
                t:for (var o = 0; o < t.length; ++o) {
                    for (var a = 0; a < i.length; ++a) if (i[a][0].length === t[o].length) {
                        i[a].push(t[o]);
                        continue t
                    }
                    i.push([t[o]])
                }
                if (i.length > 3) {
                    i.sort(function (t, e) {
                        return e.length - t.length
                    }), r += "switch(str.length){";
                    for (var o = 0; o < i.length; ++o) {
                        var s = i[o];
                        r += "case " + s[0].length + ":", n(s)
                    }
                    r += "}"
                } else n(t);
                return new Function("str", r)
            }, i.trackErrorPos = function () {
                function t(t, e) {
                    for (var n = 0, r = 0, i = t.length; r < i; r++) {
                        var o = (t[r] || "").length;
                        if (n + o > e) return {num: r, line: t[r], start: e - r - n, prev: t[r - 1], next: t[r + 1]};
                        n += o
                    }
                }

                function e(t, e, n, o) {
                    var a = t.length, s = e - r;
                    s < 0 && (s = 0);
                    var u = e + i;
                    u > a && (u = a);
                    var c = t.slice(s, u), l = "[" + (n + 1) + "] " + (s > 0 ? ".." : ""), f = u < a ? ".." : "",
                        p = l + c + f;
                    return o && (p += "\n" + new Array(e - s + l.length + 1).join(" ") + "^^^"), p
                }

                var n = /\r\n|[\n\r\u2028\u2029]/g, r = 20, i = 20;
                return function (r, i) {
                    i > r.length - 1 && (i = r.length - 1), n.lastIndex = 0;
                    var o = r.split(n), a = t(o, i), s = a.start, u = a.num;
                    return (a.prev ? e(a.prev, s, u - 1) + "\n" : "") + e(a.line, s, u, !0) + "\n" + (a.next ? e(a.next, s, u + 1) + "\n" : "")
                }
            }();
            var c = /\((\?\!|\?\:|\?\=)/g;
            i.findSubCapture = function (t) {
                var e = 0, n = 0, r = t.length, i = t.match(c);
                for (i = i ? i.length : 0; r--;) {
                    var o = t.charAt(r);
                    0 !== r && "\\" === t.charAt(r - 1) || ("(" === o && e++, ")" === o && n++)
                }
                if (e !== n) throw"RegExp: " + t + "'s bracket is not marched";
                return e - i
            }, i.escapeRegExp = function (t) {
                return t.replace(/[-[\]{}()*+?.\\^$|,#\s]/g, function (t) {
                    return "\\" + t
                })
            };
            var l = new RegExp("&(?:(#x[0-9a-fA-F]+)|(#[0-9]+)|(" + i.keys(o).join("|") + "));", "gi");
            i.convertEntity = function (t) {
                return ("" + t).replace(l, function (t, e, n, r) {
                    var i;
                    return i = n ? parseInt(n.slice(1), 10) : e ? parseInt(e.slice(2), 16) : o[r], String.fromCharCode(i)
                })
            }, i.createObject = function (t, e) {
                function n() {
                }

                n.prototype = t;
                var r = new n;
                return e && i.extend(r, e), r
            }, i.createProto = function (t, e) {
                function n() {
                    this.constructor = t
                }

                return n.prototype = e, t.prototype = new n
            }, i.clone = function (t) {
                var e = i.typeOf(t);
                if ("array" === e) {
                    for (var n = [], r = 0, o = t.length; r < o; r++) n[r] = t[r];
                    return n
                }
                if ("object" === e) {
                    var n = {};
                    for (var r in t) t.hasOwnProperty(r) && (n[r] = t[r]);
                    return n
                }
                return t
            }, i.equals = function (t, e) {
                var n = typeof t;
                return !("number" !== n || "number" != typeof e || !isNaN(t) || !isNaN(e)) || t === e
            };
            var f = /-([a-z])/g;
            i.camelCase = function (t) {
                return t.replace(f, function (t, e) {
                    return e.toUpperCase()
                })
            }, i.throttle = function (t, e) {
                var n, r, i, e = e || 100, o = null, a = 0, s = function () {
                    a = +new Date, o = null, i = t.apply(n, r), n = r = null
                };
                return function () {
                    var u = +new Date, c = e - (u - a);
                    return n = this, r = arguments, c <= 0 || c > e ? (clearTimeout(o), o = null, a = u, i = t.apply(n, r), n = r = null) : o || (o = setTimeout(s, c)), i
                }
            }, i.escape = function () {
                var t = /&/g, e = /</g, n = />/g, r = /\'/g, i = /\"/g, o = /[&<>\"\']/;
                return function (a) {
                    return o.test(a) ? a.replace(t, "&amp;").replace(e, "&lt;").replace(n, "&gt;").replace(r, "&#39;").replace(i, "&quot;") : a
                }
            }(), i.cache = function (t) {
                t = t || 1e3;
                var e = [], n = {};
                return {
                    set: function (t, r) {
                        return e.length > this.max && (n[e.shift()] = void 0), void 0 === n[t] && e.push(t), n[t] = r, r
                    }, get: function (t) {
                        return void 0 === t ? n : n[t]
                    }, max: t, len: function () {
                        return e.length
                    }
                }
            }, i.handleEvent = function (t, e) {
                var n, r = this;
                return "expression" === t.type && (n = t.get), n ? function (t) {
                    r.$update(function () {
                        var e = this.data;
                        e.$event = t;
                        var i = n(r);
                        i === !1 && t && t.preventDefault && t.preventDefault(), e.$event = void 0
                    })
                } : function () {
                    var e = a.call(arguments);
                    e.unshift(t), r.$update(function () {
                        r.$emit.apply(r, e)
                    })
                }
            }, i.once = function (t) {
                var e = 0;
                return function () {
                    0 === e++ && t.apply(this, arguments)
                }
            }, i.fixObjStr = function (t) {
                return 0 !== t.trim().indexOf("{") ? "{" + t + "}" : t
            }, i.map = function (t, e) {
                for (var n = [], r = 0, i = t.length; r < i; r++) n.push(e(t[r], r));
                return n
            }, i.log = r, i.isVoidTag = i.makePredicate("area base br col embed hr img input keygen link menuitem meta param source track wbr r-content"), i.isBooleanAttr = i.makePredicate("selected checked disabled readonly required open autofocus controls autoplay compact loop defer multiple"), i.isFalse - function () {
                return !1
            }, i.isTrue - function () {
                return !0
            }, i.isExpr = function (t) {
                return t && "expression" === t.type
            }, i.isGroup = function (t) {
                return t.inject || t.$inject
            }, i.getCompileFn = function (t, e, n) {
                return e.$compile.bind(e, t, n)
            }
        }).call(e, function () {
            return this
        }())
    }, function (t, e, n) {
        var r = n(5), i = n(4), o = (n(22), n(3)), a = n(11), s = a.NAMESPACE;
        n(23), n(24), t.exports = {
            "r-class": function (t, e) {
                "string" == typeof e && (e = r.fixObjStr(e));
                var n = t.namespaceURI && t.namespaceURI !== s.html;
                this.$watch(e, function (e) {
                    var r = n ? t.getAttribute("class") : t.className;
                    r = " " + (r || "").replace(/\s+/g, " ") + " ";
                    for (var o in e) e.hasOwnProperty(o) && (r = r.replace(" " + o + " ", " "), e[o] === !0 && (r += o + " "));
                    r = r.trim(), n ? i.attr(t, "class", r) : t.className = r
                }, !0)
            }, "r-style": function (t, e) {
                "string" == typeof e && (e = r.fixObjStr(e)), this.$watch(e, function (e) {
                    for (var n in e) e.hasOwnProperty(n) && i.css(t, n, e[n])
                }, !0)
            }, "r-hide": function (t, e) {
                var n, i = null;
                r.isExpr(e) || "string" == typeof e ? this.$watch(e, function (e) {
                    var r = !!e;
                    r !== i && (i = r, r ? t.onleave ? n = t.onleave(function () {
                        t.style.display = "none", n = null
                    }) : t.style.display = "none" : (n && n(), t.style.display = "", t.onenter && t.onenter()))
                }) : e && (t.style.display = "none")
            }, "r-html": function (t, e) {
                this.$watch(e, function (e) {
                    e = e || "", i.html(t, e)
                }, {force: !0})
            }, ref: {
                accept: a.COMPONENT_TYPE + a.ELEMENT_TYPE, link: function (t, e) {
                    var n, i = this.$refs || (this.$refs = {});
                    return r.isExpr(e) ? this.$watch(e, function (e, r) {
                        n = e, i[r] === t && (i[r] = null), n && (i[n] = t)
                    }) : i[n = e] = t, function () {
                        i[n] = null
                    }
                }
            }
        }, o.directive(t.exports)
    }, function (t, e, n) {
        function r(t) {
            var e, n = [], r = 0, i = o.noop, a = {
                type: t, start: function (t) {
                    return e = o.uid(), "function" == typeof t && (i = t), r > 0 ? r = 0 : a.step(), a.compelete
                }, compelete: function () {
                    e = null, i && i(), i = o.noop, r = 0
                }, step: function () {
                    n[r] && n[r](a.done.bind(a, e))
                }, done: function (t) {
                    t === e && (r < n.length - 1 ? (r++, a.step()) : a.compelete())
                }, push: function (t) {
                    n.push(t)
                }
            };
            return a
        }

        function i(t, e) {
            function n(t) {
                f && m.push(f), f = r(t)
            }

            function i(t, e) {
                e && t()
            }

            function a(t) {
                return function () {
                    t.onenter = null, t.onleave = null
                }
            }

            var s = this.constructor;
            o.isExpr(e) && (e = e.get(this)), e = e.trim();
            for (var u, f, p, h, d, v, g = e.split(";"), m = [], y = [], x = 0, _ = g.length; x < _; x++) if (u = g[x], d = u.split(":"), p = d[0] && d[0].trim(), h = d[1] && d[1].trim(), p) if (p !== c) if (p !== l) {
                var v = s.animation(p);
                if (!v || !f) throw Error(v ? "you should start with `on` or `event` in animation" : "undefined animator 【" + p + "】");
                f.push(v.call(this, {element: t, done: f.done, param: h}))
            } else n(h), "leave" === h ? (t.onleave = f.start, y.push(a(t))) : "enter" === h ? (t.onenter = f.start, y.push(a(t))) : "on" + h in t ? y.push(this._handleEvent(t, h, f.start)) : (this.$on(h, f.start), y.push(this.$off.bind(this, h, f.start))); else n("when"), this.$watch(h, i.bind(this, f.start));
            if (y.length) return function () {
                y.forEach(function (t) {
                    t()
                })
            }
        }

        var o = n(5), a = n(22), s = (n(4), n(3)), u = /\s+/, c = "when", l = "on";
        s._addProtoInheritCache("animation"), s.animation({
            wait: function (t) {
                var e = parseInt(t.param) || 0;
                return function (t) {
                    setTimeout(t, e)
                }
            }, "class": function (t) {
                var e = t.param.split(","), n = e[0] || "", r = parseInt(e[1]) || 1;
                return function (e) {
                    a.startClassAnimate(t.element, n, e, r)
                }
            }, call: function (t) {
                var e = this.$expression(t.param).get, n = this;
                return function (t) {
                    e(n), n.$update(), t()
                }
            }, emit: function (t) {
                var e = t.param, n = e.split(","), r = n[0] || "", i = n[1] ? this.$expression(n[1]).get : null;
                if (!r) throw Error("you shoud specified a eventname in emit command");
                var o = this;
                return function (t) {
                    o.$emit(r, i ? i(o) : void 0), t()
                }
            }, style: function (t) {
                var e, n = {}, r = t.param, i = r.split(",");
                return i.forEach(function (t) {
                    if (t = t.trim()) {
                        var r = t.split(u), i = r.shift(), o = r.join(" ");
                        if (!i || !o) throw Error("invalid style in command: style");
                        n[i] = o, e = !0
                    }
                }), function (r) {
                    e ? a.startStyleAnimate(t.element, n, r) : r()
                }
            }
        }), s.directive("r-animation", i), s.directive("r-anim", i)
    }, function (t, e, n) {
        function r(t) {
            t.implement({
                $timeout: function (t, e) {
                    return e = e || 0, setTimeout(function () {
                        t.call(this), this.$update()
                    }.bind(this), e)
                }, $interval: function (t, e) {
                    return e = e || 1e3 / 60, setInterval(function () {
                        t.call(this), this.$update()
                    }.bind(this), e)
                }
            })
        }

        var i = n(3);
        i.plugin("timeout", r), i.plugin("$timeout", r)
    }, function (t, e, n) {
        function r(t, e) {
            return "object" === e ? l.keys(t) : "array" === e ? t : []
        }

        function i(t, e, n) {
            for (var r = [], i = 0, o = t.length; i < o; i++) {
                var a = this._walk(t[i], {element: e, fromElement: !0, attrs: t, extra: n});
                a && r.push(a)
            }
            return r
        }

        var o = n(25).diffArray, a = n(15), s = n(22), u = (n(26), n(10)), c = n(4), l = n(5), f = t.exports = {};
        f.list = function (t, e) {
            function n(t, e) {
                for (var n = 0; n < e; n++) {
                    var r = w.children.splice(t + 1, 1)[0];
                    r && r.destroy(!0)
                }
            }

            function i(n, r, i, o) {
                for (var u = n; u < r; u++) {
                    var f = i[u], p = {};
                    c(p, u, f, o), p = l.createObject(_, p);
                    var h = b.$compile(t.body, {extra: p, namespace: x, record: !0, outer: e.outer});
                    h.data = p;
                    var d = a.last(w.get(u));
                    d.parentNode && s.inject(a.node(h), d, "after"), w.children.splice(u + 1, 0, h)
                }
            }

            function c(t, e, n, r) {
                t[T] = e, r ? (t[E] = n, t[N] = r[n]) : (t[N] = n, t[E] = null)
            }

            function p(t, e, n, r) {
                for (var i = t; i < e; i++) {
                    var o = w.get(i + 1), a = n[i];
                    c(o.data, i, a, r)
                }
            }

            function h(t, e, r, a) {
                var s = 0, u = t.length;
                if (r || 0 === u && 0 === e.length || (r = o(t, e, !0)), r && r.length) {
                    for (var c = 0; c < r.length; c++) {
                        var l = r[c], f = l.index, h = l.removed, d = l.add, v = h.length;
                        if (C && v && d) {
                            for (var m = Math.min(v, d), y = 0; y < m;) g(t[f], f) !== g(h[0], f) && (n(f, 1), i(f, f + 1, t, a)), h.shift(), d--, f++, y++;
                            v = h.length
                        }
                        p(s, f, t, a), n(f, v), i(f, f + d, t, a), s = f + d - v, s = s < 0 ? 0 : s
                    }
                    if (s < u) for (var c = s; c < u; c++) {
                        var x = w.get(c + 1);
                        x.data[T] = c
                    }
                }
            }

            function d(t, e, r) {
                var o = t.length, a = e.length, s = Math.min(o, a);
                p(0, s, t, r), o < a ? n(o, a - o) : o > a && i(a, o, t, r)
            }

            function v(t, n, i) {
                var o, u = l.typeOf(t), c = l.typeOf(n), f = r(t, u), p = r(n, c), v = f && f.length, g = p && p.length;
                if (!g && v && w.get(1)) {
                    var m = w.children.pop();
                    m.destroy && m.destroy(!0)
                }
                if ("object" === u && (o = t), C === !0 ? d(f, p, o) : h(f, p, i, o), !v && A && A.length) {
                    var T = b.$compile(A, {extra: _, record: !0, outer: e.outer, namespace: x});
                    w.children.push(T), y.parentNode && s.inject(a.node(T), y, "after")
                }
            }

            var g, m, y = (f.Regular, document.createComment("Regular list")), x = e.namespace, _ = e.extra, b = this,
                w = new u([y]), T = t.variable + "_index", E = t.variable + "_key", N = t.variable, A = t.alternate,
                C = t.track;
            return C && C !== !0 && (C = this._touchExpr(C), m = l.createObject(_), g = function (t, e) {
                return m[N] = t, m[T] = e, C.get(b, m)
            }), this.$watch(t.sequence, v, {init: !0, diff: C !== !0, deep: !0}), w
        }, f.template = function (t, e) {
            var n, n, r = t.content, i = document.createComment("inlcude"), o = e.namespace, a = e.extra,
                s = new u([i]);
            if (r) {
                var c = this;
                this.$watch(r, function (t) {
                    var r = s.get(1), u = typeof t;
                    r && (r.destroy(!0), s.children.pop()), t && (s.push(n = "function" === u ? t() : c.$compile("object" !== u ? String(t) : t, {
                        record: !0,
                        outer: e.outer,
                        namespace: o,
                        extra: a
                    })), i.parentNode && n.$inject(i, "before"))
                }, {init: !0})
            }
            return s
        };
        var p = 0;
        f["if"] = function (t, e) {
            var n, r, i = this, o = e.extra;
            if (e && e.element) {
                var c = function (s) {
                    s ? (r && a.destroy(r), t.consequent && (n = i.$compile(t.consequent, {
                        record: !0,
                        element: e.element,
                        extra: o
                    }))) : (n && a.destroy(n), t.alternate && (r = i.$compile(t.alternate, {
                        record: !0,
                        element: e.element,
                        extra: o
                    })))
                };
                return this.$watch(t.test, c, {force: !0}), {
                    destroy: function () {
                        n ? a.destroy(n) : r && a.destroy(r)
                    }
                }
            }
            var n, r, l = document.createComment("Regular if" + p++), f = new u;
            f.push(l);
            var h = null, d = e.namespace, c = function (u, c) {
                var p = !!u;
                p !== h && (h = p, f.children[1] && (f.children[1].destroy(!0), f.children.pop()), p ? t.consequent && t.consequent.length && (n = i.$compile(t.consequent, {
                    record: !0,
                    outer: e.outer,
                    namespace: d,
                    extra: o
                }), f.push(n), l.parentNode && s.inject(a.node(n), l, "before")) : t.alternate && t.alternate.length && (r = i.$compile(t.alternate, {
                    record: !0,
                    outer: e.outer,
                    namespace: d,
                    extra: o
                }), f.push(r), l.parentNode && s.inject(a.node(r), l, "before")))
            };
            return this.$watch(t.test, c, {force: !0, init: !0}), f
        }, f.expression = function (t, e) {
            var n = document.createTextNode("");
            return this.$watch(t, function (t) {
                c.text(n, "" + (null == t ? "" : "" + t))
            }, {init: !0}), n
        }, f.text = function (t, e) {
            var n = document.createTextNode(l.convertEntity(t.text));
            return n
        };
        var h = /^on-(.+)$/;
        f.element = function (t, e) {
            var n, r, o = t.attrs, u = this.constructor, p = t.children, h = e.namespace, d = e.extra, v = t.tag,
                g = u.component(v);
            if ("r-content" === v) return l.log("r-content is deprecated, use {#inc this.$body} instead (`{#include}` as same)", "warn"), this.$body && this.$body();
            if (g || "r-component" === v) return e.Component = g, f.component.call(this, t, e);
            "svg" === v && (h = "svg"), p && p.length && (n = this.$compile(p, {
                outer: e.outer,
                namespace: h,
                extra: d
            })), r = c.create(v, h, o), n && !l.isVoidTag(v) && c.inject(a.node(n), r), t.touched || (o.sort(function (t, e) {
                var n = u.directive(t.name), r = u.directive(e.name);
                return n && r ? (r.priority || 1) - (n.priority || 1) : n ? 1 : r ? -1 : "type" === e.name ? 1 : -1
            }), t.touched = !0);
            var m = i.call(this, o, r, d);
            return {
                type: "element", group: n, node: function () {
                    return r
                }, last: function () {
                    return r
                }, destroy: function (t) {
                    t ? s.remove(r, n ? n.destroy.bind(n) : l.noop) : n && n.destroy(), m.length && m.forEach(function (t) {
                        t && ("function" == typeof t.destroy ? t.destroy() : t())
                    })
                }
            }
        }, f.component = function (t, e) {
            for (var n, r, i, o, s = t.attrs, c = e.Component, f = this.constructor, p = e.extra, d = e.namespace, v = this, g = {}, m = 0, y = s.length; m < y; m++) {
                var x = s[m], _ = this._touchExpr(void 0 === x.value || x.value);
                _.constant && (_ = x.value = _.get(this)), x.value && x.value.constant === !0 && (_ = _.get(this));
                var b = x.name;
                if (!x.event) {
                    var w = b.match(h);
                    w && (x.event = w[1])
                }
                if ("cmpl" === x.mdf && (_ = l.getCompileFn(_, this, {
                    record: !0,
                    namespace: d,
                    extra: p,
                    outer: e.outer
                })), "is" === b && !c) {
                    i = _;
                    var T = this.$get(_, !0);
                    if (c = f.component(T), "function" != typeof c) throw new Error("component " + T + " has not registed!")
                }
                var E;
                (E = x.event) ? (o = o || {}, o[E] = l.handleEvent.call(this, _, E)) : (b = x.name = l.camelCase(b), _ && "expression" === _.type ? g[b] = _.get(v) : g[b] = _, "ref" === b && null != _ && (r = _), "isolate" === b && (n = "expression" === _.type ? _.get(v) : parseInt(_ === !0 ? 3 : _, 10), g.isolate = n))
            }
            var N, A = {
                data: g,
                events: o,
                $parent: 2 & n ? null : this,
                $root: this.$root,
                $outer: e.outer,
                _body: {ctx: this, ast: t.children}
            }, e = {namespace: d, extra: e.extra}, C = new c(A, e);
            r && this.$refs && (N = c.directive("ref").link, this.$on("$destroy", N.call(this, C, r))), r && v.$refs && (v.$refs[r] = C);
            for (var m = 0, y = s.length; m < y; m++) {
                var x = s[m], _ = x.value || !0, b = x.name;
                "expression" !== _.type || x.event || (_ = v._touchExpr(_), 2 & n || this.$watch(_, function (t, e) {
                    this.data[t] = e
                }.bind(C, b), {sync: !0}), !_.set || 1 & n || C.$watch(b, v.$update.bind(v, _), {init: !0}))
            }
            if (i && "expression" === i.type) {
                var S = new u;
                return S.push(C), this.$watch(i, function (t) {
                    var e = f.component(t);
                    if (!e) throw new Error("component " + t + " has not registed!");
                    var n = new e(A), i = S.children.pop();
                    S.push(n), n.$inject(a.last(i), "after"), i.destroy(), r && (v.$refs[r] = n)
                }, {sync: !0}), S
            }
            return C
        }, f.attribute = function (t, e) {
            var n = t, r = n.name, i = n.value || "", o = i.constant, a = this.constructor, s = a.directive(r),
                u = e.element, f = this;
            if (i = this._touchExpr(i), o && (i = i.get(this)), s && s.link) {
                var p = s.link.call(f, u, i, r, e.attrs);
                return "function" == typeof p && (p = {destroy: p}), p
            }
            if ("expression" === i.type ? this.$watch(i, function (t, e) {
                c.attr(u, r, t)
            }, {init: !0}) : l.isBooleanAttr(r) ? c.attr(u, r, !0) : c.attr(u, r, i), !e.fromElement) return {
                destroy: function () {
                    c.attr(u, r, null)
                }
            }
        }
    }, function (t, e, n) {
        function r(t) {
            this.children = t || []
        }

        var i = n(5), o = n(15), a = i.extend(r.prototype, {
            destroy: function (t) {
                o.destroy(this.children, t), this.ondestroy && this.ondestroy(), this.children = null
            }, get: function (t) {
                return this.children[t]
            }, push: function (t) {
                this.children.push(t)
            }
        });
        a.inject = a.$inject = o.inject, t.exports = r
    }, function (t, e, n) {
        t.exports = {
            COMPONENT_TYPE: 1,
            ELEMENT_TYPE: 2,
            NAMESPACE: {html: "http://www.w3.org/1999/xhtml", svg: "http://www.w3.org/2000/svg"}
        }
    }, function (t, e, n) {
        function r(t) {
            return function (e) {
                return {type: t, value: e}
            }
        }

        function i(t, e) {
            f[l.END] && (this.markStart = f[l.END], this.markEnd = l.END), this.input = (t || "").trim(), this.opts = e || {}, this.map = 2 !== this.opts.mode ? s : u, this.states = ["INIT"], e && e.expression && (this.states.push("JST"), this.expression = !0)
        }

        function o(t) {
            for (var e, n, r = {}, i = 0, o = t.length; i < o; i++) e = t[i], n = e[2] || "INIT", (r[n] || (r[n] = {
                rules: [],
                links: []
            })).rules.push(e);
            return a(r)
        }

        function a(t) {
            function e(t, e) {
                return "string" == typeof p[e] ? c.escapeRegExp(p[e]) : String(p[e]).slice(1, -1)
            }

            var n, i, o, a, s, u, l;
            for (var f in t) {
                n = t[f], n.curIndex = 1, i = n.rules, o = [];
                for (var h = 0, d = i.length; h < d; h++) l = i[h], s = l[0], a = l[1], "string" == typeof a && (a = r(a)), "regexp" === c.typeOf(s) && (s = s.toString().slice(1, -1)), s = s.replace(/\{(\w+)\}/g, e), u = c.findSubCapture(s) + 1, n.links.push([n.curIndex, u, a]), n.curIndex += u, o.push(s);
                n.TRUNK = new RegExp("^(?:(" + o.join(")|(") + "))")
            }
            return t
        }

        var s, u, c = n(5), l = n(2), f = {"}": "{", "]": "["},
            p = {NAME: /(?:[:_A-Za-z][-\.:_0-9A-Za-z]*)/, IDENT: /[\$_A-Za-z][_0-9A-Za-z\$]*/, SPACE: /[\r\n\t\f ]/},
            h = /a|(b)/.exec("a"), d = h && void 0 === h[1] ? function (t) {
                return void 0 !== t
            } : function (t) {
                return !!t
            }, v = i.prototype;
        v.lex = function (t) {
            t = (t || this.input).trim();
            var e, n, r, i, o, a = [];
            this.input = t, this.marks = 0, this.index = 0;
            for (var s = 0; t;) s++, o = this.state(), e = this.map[o], n = e.TRUNK.exec(t), n || this.error("Unrecoginized Token"), r = n[0].length, t = t.slice(r), i = this._process.call(this, n, e, t), i && a.push(i), this.index += r;
            return a.push({type: "EOF"}), a
        }, v.error = function (t) {
            throw Error("Parse Error: " + t + ":\n" + c.trackErrorPos(this.input, this.index))
        }, v._process = function (t, e, n) {
            for (var r, i = e.links, o = !1, a = i.length, s = 0; s < a; s++) {
                var u = i[s], c = u[2], l = u[0];
                if (d(t[l])) {
                    o = !0, c && (r = c.apply(this, t.slice(l, l + u[1])), r && (r.pos = this.index));
                    break
                }
            }
            if (!o) switch (n.charAt(0)) {
                case"<":
                    this.enter("TAG");
                    break;
                default:
                    this.enter("JST")
            }
            return r
        }, v.enter = function (t) {
            return this.states.push(t), this
        }, v.state = function () {
            var t = this.states;
            return t[t.length - 1]
        }, v.leave = function (t) {
            var e = this.states;
            t && e[e.length - 1] !== t || e.pop()
        }, i.setup = function () {
            p.END = l.END, p.BEGIN = l.BEGIN, s = o([g.ENTER_JST, g.ENTER_TAG, g.TEXT, g.TAG_NAME, g.TAG_OPEN, g.TAG_CLOSE, g.TAG_PUNCHOR, g.TAG_ENTER_JST, g.TAG_UNQ_VALUE, g.TAG_STRING, g.TAG_SPACE, g.TAG_COMMENT, g.JST_OPEN, g.JST_CLOSE, g.JST_COMMENT, g.JST_EXPR_OPEN, g.JST_IDENT, g.JST_SPACE, g.JST_LEAVE, g.JST_NUMBER, g.JST_PUNCHOR, g.JST_STRING, g.JST_COMMENT]), u = o([g.ENTER_JST2, g.TEXT, g.JST_COMMENT, g.JST_OPEN, g.JST_CLOSE, g.JST_EXPR_OPEN, g.JST_IDENT, g.JST_SPACE, g.JST_LEAVE, g.JST_NUMBER, g.JST_PUNCHOR, g.JST_STRING, g.JST_COMMENT])
        };
        var g = {
            ENTER_JST: [/[^\x00<]*?(?={BEGIN})/, function (t) {
                if (this.enter("JST"), t) return {type: "TEXT", value: t}
            }],
            ENTER_JST2: [/[^\x00]*?(?={BEGIN})/, function (t) {
                if (this.enter("JST"), t) return {type: "TEXT", value: t}
            }],
            ENTER_TAG: [/[^\x00]*?(?=<[\w\/\!])/, function (t) {
                if (this.enter("TAG"), t) return {type: "TEXT", value: t}
            }],
            TEXT: [/[^\x00]+/, "TEXT"],
            TAG_NAME: [/{NAME}/, "NAME", "TAG"],
            TAG_UNQ_VALUE: [/[^\{}&"'=><`\r\n\f\t ]+/, "UNQ", "TAG"],
            TAG_OPEN: [/<({NAME})\s*/, function (t, e) {
                return {type: "TAG_OPEN", value: e}
            }, "TAG"],
            TAG_CLOSE: [/<\/({NAME})[\r\n\f\t ]*>/, function (t, e) {
                return this.leave(), {type: "TAG_CLOSE", value: e}
            }, "TAG"],
            TAG_ENTER_JST: [/(?={BEGIN})/, function () {
                this.enter("JST")
            }, "TAG"],
            TAG_PUNCHOR: [/[\>\/=&]/, function (t) {
                return ">" === t && this.leave(), {type: t, value: t}
            }, "TAG"],
            TAG_STRING: [/'([^']*)'|"([^"]*)\"/, function (t, e, n) {
                var r = e || n || "";
                return {type: "STRING", value: r}
            }, "TAG"],
            TAG_SPACE: [/{SPACE}+/, null, "TAG"],
            TAG_COMMENT: [/<\!--([^\x00]*?)--\>/, function (t) {
                this.leave()
            }, "TAG"],
            JST_OPEN: ["{BEGIN}#{SPACE}*({IDENT})", function (t, e) {
                return {type: "OPEN", value: e}
            }, "JST"],
            JST_LEAVE: [/{END}/, function (t) {
                return this.markEnd === t && this.expression ? {
                    type: this.markEnd,
                    value: this.markEnd
                } : this.markEnd && this.marks ? (this.marks--, {
                    type: this.markEnd,
                    value: this.markEnd
                }) : (this.firstEnterStart = !1, this.leave("JST"), {type: "END"})
            }, "JST"],
            JST_CLOSE: [/{BEGIN}\s*\/({IDENT})\s*{END}/, function (t, e) {
                return this.leave("JST"), {type: "CLOSE", value: e}
            }, "JST"],
            JST_COMMENT: [/{BEGIN}\!([^\x00]*?)\!{END}/, function () {
                this.leave()
            }, "JST"],
            JST_EXPR_OPEN: ["{BEGIN}", function (t, e) {
                if (t === this.markStart) {
                    if (this.expression) return {type: this.markStart, value: this.markStart};
                    if (this.firstEnterStart || this.marks) return this.marks++, this.firstEnterStart = !1, {
                        type: this.markStart,
                        value: this.markStart
                    };
                    this.firstEnterStart = !0
                }
                return {type: "EXPR_OPEN", escape: !1}
            }, "JST"],
            JST_IDENT: ["{IDENT}", "IDENT", "JST"],
            JST_SPACE: [/[ \r\n\f]+/, null, "JST"],
            JST_PUNCHOR: [/[=!]?==|[-=><+*\/%\!]?\=|\|\||&&|\@\(|\.\.|[<\>\[\]\(\)\-\|\{}\+\*\/%?:\.!,]/, function (t) {
                return {type: t, value: t}
            }, "JST"],
            JST_STRING: [/'([^']*)'|"([^"]*)"/, function (t, e, n) {
                return {type: "STRING", value: e || n || ""}
            }, "JST"],
            JST_NUMBER: [/(?:[0-9]*\.[0-9]+|[0-9]+)(e\d+)?/, function (t) {
                return {type: "NUMBER", value: parseFloat(t, 10)}
            }, "JST"]
        };
        i.setup(), t.exports = i
    }, function (t, e, n) {
        function r(t, e) {
            e = e || {}, this.input = t, this.tokens = new s(t, e).lex(), this.pos = 0, this.length = this.tokens.length
        }

        var i = n(5), o = n(2), a = n(26), s = n(12), u = i.varName, c = i.ctxName, l = i.extName,
            f = i.makePredicate("STRING IDENT NUMBER"),
            p = i.makePredicate("true false undefined null this Array Date JSON Math NaN RegExp decodeURI decodeURIComponent encodeURI encodeURIComponent parseFloat parseInt Object"),
            h = r.prototype;
        h.parse = function () {
            this.pos = 0;
            var t = this.program();
            return "TAG_CLOSE" === this.ll().type && this.error("You may got a unclosed Tag"), t
        }, h.ll = function (t) {
            t = t || 1, t < 0 && (t += 1);
            var e = this.pos + t - 1;
            return e > this.length - 1 ? this.tokens[this.length - 1] : this.tokens[e]
        }, h.la = function (t) {
            return (this.ll(t) || "").type
        }, h.match = function (t, e) {
            var n;
            return (n = this.eat(t, e)) ? n : (n = this.ll(), void this.error("expect [" + t + (null == e ? "" : ":" + e) + ']" -> got "[' + n.type + (null == e ? "" : ":" + n.value) + "]", n.pos))
        }, h.error = function (t, e) {
            throw t = "\n【 parse failed 】 " + t + ":\n\n" + i.trackErrorPos(this.input, "number" == typeof e ? e : this.ll().pos || 0), new Error(t)
        }, h.next = function (t) {
            t = t || 1, this.pos += t
        }, h.eat = function (t, e) {
            var n = this.ll();
            if ("string" != typeof t) {
                for (var r = t.length; r--;) if (n.type === t[r]) return this.next(), n
            } else if (n.type === t && ("undefined" == typeof e || n.value === e)) return this.next(), n;
            return !1;
        }, h.program = function () {
            for (var t = [], e = this.ll(); "EOF" !== e.type && "TAG_CLOSE" !== e.type;) t.push(this.statement()), e = this.ll();
            return t
        }, h.statement = function () {
            var t = this.ll();
            switch (t.type) {
                case"NAME":
                case"TEXT":
                    var e = t.value;
                    for (this.next(); t = this.eat(["NAME", "TEXT"]);) e += t.value;
                    return a.text(e);
                case"TAG_OPEN":
                    return this.xml();
                case"OPEN":
                    return this.directive();
                case"EXPR_OPEN":
                    return this.interplation();
                default:
                    this.error("Unexpected token: " + this.la())
            }
        }, h.xml = function () {
            var t, e, n, r;
            return t = this.match("TAG_OPEN").value, e = this.attrs(), r = this.eat("/"), this.match(">"), r || i.isVoidTag(t) || (n = this.program(), this.eat("TAG_CLOSE", t) || this.error("expect </" + t + "> gotno matched closeTag")), a.element(t, e, n)
        }, h.xentity = function (t) {
            var e, n, r = t.value;
            if ("NAME" === t.type) {
                if (~r.indexOf(".")) {
                    var i = r.split(".");
                    r = i[0], n = i[1]
                }
                return this.eat("=") && (e = this.attvalue(n)), a.attribute(r, e, n)
            }
            return "if" !== r && this.error("current version. ONLY RULE #if #else #elseif is valid in tag, the rule #" + r + " is invalid"), this["if"](!0)
        }, h.attrs = function (t) {
            var e;
            e = t ? ["NAME"] : ["NAME", "OPEN"];
            for (var n, r = []; n = this.eat(e);) r.push(this.xentity(n));
            return r
        }, h.attvalue = function (t) {
            var e = this.ll();
            switch (e.type) {
                case"NAME":
                case"UNQ":
                case"STRING":
                    this.next();
                    var n = e.value;
                    if (~n.indexOf(o.BEGIN) && ~n.indexOf(o.END) && "cmpl" !== t) {
                        var i = !0, s = new r(n, {mode: 2}).parse();
                        if (1 === s.length && "expression" === s[0].type) return s[0];
                        var u = [];
                        s.forEach(function (t) {
                            t.constant || (i = !1), u.push(t.body || "'" + t.text.replace(/'/g, "\\'") + "'")
                        }), u = "[" + u.join(",") + "].join('')", n = a.expression(u, null, i)
                    }
                    return n;
                case"EXPR_OPEN":
                    return this.interplation();
                default:
                    this.error("Unexpected token: " + this.la())
            }
        }, h.directive = function () {
            var t = this.ll().value;
            return this.next(), "function" == typeof this[t] ? this[t]() : void this.error("Undefined directive[" + t + "]")
        }, h.interplation = function () {
            this.match("EXPR_OPEN");
            var t = this.expression(!0);
            return this.match("END"), t
        }, h.inc = h.include = function () {
            var t = this.expression();
            return this.match("END"), a.template(t)
        }, h["if"] = function (t) {
            var e = this.expression(), n = [], r = [], i = n, o = t ? "attrs" : "statement";
            this.match("END");
            for (var s, u; !(u = this.eat("CLOSE"));) if (s = this.ll(), "OPEN" === s.type) switch (s.value) {
                case"else":
                    i = r, this.next(), this.match("END");
                    break;
                case"elseif":
                    return this.next(), r.push(this["if"](t)), a["if"](e, n, r);
                default:
                    i.push(this[o](!0))
            } else i.push(this[o](!0));
            return "if" !== u.value && this.error("Unmatched if directive"), a["if"](e, n, r)
        }, h.list = function () {
            var t, e, n, r = this.expression(), i = [], o = [], s = i;
            for (this.match("IDENT", "as"), t = this.match("IDENT").value, this.eat("IDENT", "by") && (this.eat("IDENT", t + "_index") ? n = !0 : (n = this.expression(), n.constant && (n = !0))), this.match("END"); !(e = this.eat("CLOSE"));) this.eat("OPEN", "else") ? (s = o, this.match("END")) : s.push(this.statement());
            return "list" !== e.value && this.error("expect list got /" + e.value + " ", e.pos), a.list(r, t, i, o, n)
        }, h.expression = function () {
            var t;
            return this.eat("@(") ? (t = this.expr(), t.once = !0, this.match(")")) : t = this.expr(), t
        }, h.expr = function () {
            this.depend = [];
            var t = this.filter(), e = t.get || t, n = t.set;
            return a.expression(e, n, !this.depend.length)
        }, h.filter = function () {
            var t, e, n, r = this.assign(), o = this.eat("|"), a = [], s = "t", u = r.set, l = "";
            if (o) {
                u && (t = []), e = "(function(" + s + "){";
                do l = s + " = " + c + "._f_('" + this.match("IDENT").value + "' ).get.call( " + i.ctxName + "," + s, l += this.eat(":") ? ", " + this.arguments("|").join(",") + ");" : ");", a.push(l), t && t.unshift(l.replace(" ).get.call", " ).set.call")); while (o = this.eat("|"));
                return a.push("return " + s), t && t.push("return " + s), n = e + a.join("") + "})(" + r.get + ")", t && (u = u.replace(i.setName, e + t.join("") + "})(" + i.setName + ")")), this.getset(n, u)
            }
            return r
        }, h.assign = function () {
            var t, e = this.condition();
            return (t = this.eat(["=", "+=", "-=", "*=", "/=", "%="])) ? (e.set || this.error("invalid lefthand expression in assignment expression"), this.getset(e.set.replace("," + i.setName, "," + this.condition().get).replace("'='", "'" + t.type + "'"), e.set)) : e
        }, h.condition = function () {
            var t = this.or();
            return this.eat("?") ? this.getset([t.get + "?", this.assign().get, this.match(":").type, this.assign().get].join("")) : t
        }, h.or = function () {
            var t = this.and();
            return this.eat("||") ? this.getset(t.get + "||" + this.or().get) : t
        }, h.and = function () {
            var t = this.equal();
            return this.eat("&&") ? this.getset(t.get + "&&" + this.and().get) : t
        }, h.equal = function () {
            var t, e = this.relation();
            return (t = this.eat(["==", "!=", "===", "!=="])) ? this.getset(e.get + t.type + this.equal().get) : e
        }, h.relation = function () {
            var t, e = this.additive();
            return (t = this.eat(["<", ">", ">=", "<="]) || this.eat("IDENT", "in")) ? this.getset(e.get + t.value + this.relation().get) : e
        }, h.additive = function () {
            var t, e = this.multive();
            return (t = this.eat(["+", "-"])) ? this.getset(e.get + t.value + this.additive().get) : e
        }, h.multive = function () {
            var t, e = this.range();
            return (t = this.eat(["*", "/", "%"])) ? this.getset(e.get + t.type + this.multive().get) : e
        }, h.range = function () {
            var t, e, n = this.unary();
            if (t = this.eat("..")) {
                e = this.unary();
                var r = "(function(start,end){var res = [],step=end>start?1:-1; for(var i = start; end>start?i <= end: i>=end; i=i+step){res.push(i); } return res })(" + n.get + "," + e.get + ")";
                return this.getset(r)
            }
            return n
        }, h.unary = function () {
            var t;
            return (t = this.eat(["+", "-", "~", "!"])) ? this.getset("(" + t.type + this.unary().get + ")") : this.member()
        }, h.member = function (t, e, n, r) {
            var o, a, s, p = !1;
            if (t) "string" == typeof e && f(e) ? n.push(e) : (n && n.length && this.depend.push(n), n = null); else {
                a = this.primary();
                var h = typeof a;
                "string" === h ? (n = [], n.push(a), e = a, s = l + "." + a, t = c + "._sg_('" + a + "', " + u + ", " + l + ")", p = !0) : "this" === a.get ? (t = c, n = ["this"]) : (n = null, t = a.get)
            }
            if (o = this.eat(["[", ".", "("])) switch (o.type) {
                case".":
                    var d = this.match("IDENT").value;
                    return r = t, "(" !== this.la() ? t = c + "._sg_('" + d + "', " + t + ")" : t += "['" + d + "']", this.member(t, d, n, r);
                case"[":
                    return a = this.assign(), r = t, "(" !== this.la() ? t = c + "._sg_(" + a.get + ", " + t + ")" : t += "[" + a.get + "]", this.match("]"), this.member(t, a, n, r);
                case"(":
                    var v = this.arguments().join(",");
                    return t = t + "(" + v + ")", this.match(")"), this.member(t, null, n)
            }
            n && n.length && this.depend.push(n);
            var g = {get: t};
            return e && (g.set = c + "._ss_(" + (e.get ? e.get : "'" + e + "'") + "," + i.setName + "," + (r ? r : i.varName) + ", '=', " + (p ? 1 : 0) + ")"), g
        }, h.arguments = function (t) {
            t = t || ")";
            var e = [];
            do this.la() !== t && e.push(this.assign().get); while (this.eat(","));
            return e
        }, h.primary = function () {
            var t = this.ll();
            switch (t.type) {
                case"{":
                    return this.object();
                case"[":
                    return this.array();
                case"(":
                    return this.paren();
                case"STRING":
                    return this.next(), this.getset("'" + t.value + "'");
                case"NUMBER":
                    return this.next(), this.getset("" + t.value);
                case"IDENT":
                    return this.next(), p(t.value) ? this.getset(t.value) : t.value;
                default:
                    this.error("Unexpected Token: " + t.type)
            }
        }, h.object = function () {
            for (var t = [this.match("{").type], e = this.eat(["STRING", "IDENT", "NUMBER"]); e;) {
                t.push("'" + e.value + "'" + this.match(":").type);
                var n = this.assign().get;
                t.push(n), e = null, this.eat(",") && (e = this.eat(["STRING", "IDENT", "NUMBER"])) && t.push(",")
            }
            return t.push(this.match("}").type), {get: t.join("")}
        }, h.array = function () {
            var t, e = [this.match("[").type];
            if (this.eat("]")) e.push("]"); else {
                for (; (t = this.assign()) && (e.push(t.get), this.eat(","));) e.push(",");
                e.push(this.match("]").type)
            }
            return {get: e.join("")}
        }, h.paren = function () {
            this.match("(");
            var t = this.filter();
            return t.get = "(" + t.get + ")", this.match(")"), t
        }, h.getset = function (t, e) {
            return {get: t, set: e}
        }, t.exports = r
    }, function (t, e, n) {
        function r(t, e, n) {
            return function () {
                var r = this.supr;
                this.supr = n[t];
                var i = e.apply(this, arguments);
                return this.supr = r, i
            }
        }

        function i(t, e, n) {
            for (var i in e) e.hasOwnProperty(i) && (t[i] = s(e[i]) && s(n[i]) && a.test(e[i]) ? r(i, e[i], n) : e[i])
        }

        var o = n(5), a = /xy/.test(function () {
            "xy"
        }) ? /\bsupr\b/ : /.*/, s = function (t) {
            return "function" == typeof t
        }, u = ["events", "data", "computed"], c = u.length;
        t.exports = function l(t) {
            function e() {
                a.apply(this, arguments)
            }

            function n(t) {
                for (var e = c; e--;) {
                    var n = u[e];
                    t.hasOwnProperty(n) && r.hasOwnProperty(n) && (o.extend(r[n], t[n], !0), delete t[n])
                }
                return i(r, t, s), this
            }

            t = t || {};
            var r, a = this, s = a && a.prototype || {};
            return "function" == typeof t ? (r = t.prototype, t.implement = n, t.extend = l, t) : (r = o.createProto(e, s), e.implement = n, e.implement(t), a.__after__ && a.__after__.call(e, a, t), e.extend = l, e)
        }
    }, function (t, e, n) {
        var r = n(4), i = n(22), o = t.exports = {
            node: function (t) {
                var e, n, r;
                if (t) {
                    if (t.element) return t.element;
                    if ("function" == typeof t.node) return t.node();
                    if ("number" == typeof t.nodeType) return t;
                    if (t.group) return o.node(t.group);
                    if (e = t.children) {
                        if (1 === e.length) return o.node(e[0]);
                        r = [];
                        for (var i = 0, a = e.length; i < a; i++) n = o.node(e[i]), Array.isArray(n) ? r.push.apply(r, n) : n && r.push(n);
                        return r
                    }
                }
            }, inject: function (t, e) {
                var n = this, a = o.node(n.group || n);
                if (t === !1) return i.remove(a), n;
                if (!a) return n;
                if ("string" == typeof t && (t = r.find(t)), !t) throw Error("injected node is not found");
                if (i.inject(a, t, e), n.$emit) {
                    var s = n.parentNode, u = "after" === e || "before" === e ? t.parentNode : t;
                    n.parentNode = u, n.$emit("$inject", t, e, s)
                }
                return n
            }, last: function (t) {
                var e = t.children;
                return "function" == typeof t.last ? t.last() : "number" == typeof t.nodeType ? t : e && e.length ? o.last(e[e.length - 1]) : t.group ? o.last(t.group) : void 0
            }, destroy: function (t, e) {
                if (t) {
                    if (Array.isArray(t)) for (var n = 0, i = t.length; n < i; n++) o.destroy(t[n], e);
                    var a = t.children;
                    if ("function" == typeof t.destroy) return t.destroy(e);
                    "number" == typeof t.nodeType && e && r.remove(t), a && a.length && (o.destroy(a, !0), t.children = null)
                }
            }
        };
        r.element = function (t, e) {
            if (!t) return e ? [] : null;
            var n = o.node(t);
            if (1 === n.nodeType) return e ? [n] : n;
            for (var r = [], i = 0; i < n.length; i++) {
                var a = n[i];
                if (a && 1 === a.nodeType) {
                    if (!e) return a;
                    r.push(a)
                }
            }
            return e ? r : r[0]
        }
    }, function (t, e, n) {
        function r() {
        }

        var i = [].slice, o = n(5), a = {
            $on: function (t, e) {
                if ("object" == typeof t) for (var n in t) this.$on(n, t[n]); else {
                    var r = this, i = r._handles || (r._handles = {}), o = i[t] || (i[t] = []);
                    o.push(e)
                }
                return this
            }, $off: function (t, e) {
                var n = this;
                if (n._handles) {
                    t || (this._handles = {});
                    var r, i = n._handles;
                    if (r = i[t]) {
                        if (!e) return i[t] = [], n;
                        for (var o = 0, a = r.length; o < a; o++) if (e === r[o]) return r.splice(o, 1), n
                    }
                    return n
                }
            }, $emit: function (t) {
                var e, n, r, o = this, a = o._handles;
                if (t) {
                    var n = i.call(arguments, 1), r = t;
                    if (!a) return o;
                    if (e = a[r.slice(1)]) for (var s = 0, u = e.length; s < u; s++) e[s].apply(o, n);
                    if (!(e = a[r])) return o;
                    for (var c = 0, u = e.length; c < u; c++) e[c].apply(o, n);
                    return o
                }
            }, $one: function () {
            }
        };
        o.extend(r.prototype, a), r.mixTo = function (t) {
            t = "function" == typeof t ? t.prototype : t, o.extend(t, a)
        }, t.exports = r
    }, function (t, e, n) {
        function r() {
        }

        var i = n(5), o = n(18).expression, a = n(25), s = a.diffArray, u = a.diffObject, c = {
            $watch: function (t, e, n) {
                var r, a, s, u, c = this.__ext__;
                this._watchers || (this._watchers = []), n = n || {}, n === !0 && (n = {deep: !0});
                var l = i.uid("w_");
                if (Array.isArray(t)) {
                    for (var f = [], p = 0, h = t.length; p < h; p++) f.push(this.$expression(t[p]).get);
                    var d = [];
                    s = function (t) {
                        for (var e = !0, n = 0, r = f.length; n < r; n++) {
                            var o = f[n](t, c);
                            i.equals(o, d[n]) || (e = !1, d[n] = i.clone(o))
                        }
                        return !e && d
                    }
                } else "function" == typeof t ? r = t.bind(this) : (t = this._touchExpr(o(t)), r = t.get, a = t.once);
                var v = {
                    id: l,
                    get: r,
                    fn: e,
                    once: a,
                    force: n.force,
                    diff: n.diff,
                    test: s,
                    deep: n.deep,
                    last: n.sync ? r(this) : n.last
                };
                if (this._watchers.push(v), u = this._records && this._records.length, u && this._records[u - 1].push(l), n.init === !0) {
                    var g = this.$phase;
                    this.$phase = "digest", this._checkSingleWatch(v, this._watchers.length - 1), this.$phase = g
                }
                return v
            }, $unwatch: function (t) {
                if (t = t.id || t, this._watchers || (this._watchers = []), Array.isArray(t)) for (var e = 0, n = t.length; e < n; e++) this.$unwatch(t[e]); else {
                    var r, i, o = this._watchers;
                    if (!t || !o || !(i = o.length)) return;
                    for (; i--;) r = o[i], r && r.id === t && o.splice(i, 1)
                }
            }, $expression: function (t) {
                return this._touchExpr(o(t))
            }, $digest: function () {
                if ("digest" !== this.$phase && !this._mute) {
                    this.$phase = "digest";
                    for (var t = !1, e = 0; t = this._digest();) if (++e > 20) throw Error("there may a circular dependencies reaches");
                    e > 0 && this.$emit && this.$emit("$update"), this.$phase = null
                }
            }, _digest: function () {
                var t, e, n, r = this._watchers, i = !1;
                if (r && r.length) for (var o = 0, a = r.length; o < a; o++) e = r[o], n = this._checkSingleWatch(e, o), n && (i = !0);
                if (t = this._children, t && t.length) for (var s = 0, u = t.length; s < u; s++) {
                    var c = t[s];
                    c && c._digest() && (i = !0)
                }
                return i
            }, _checkSingleWatch: function (t, e) {
                var n = !1;
                if (t) {
                    var r, o, a, c, l, f;
                    if (t.test) {
                        var p = t.test(this);
                        p && (n = !0, t.fn.apply(this, p))
                    } else r = t.get(this), o = t.last, a = i.typeOf(o), c = i.typeOf(r), l = !0, f, "object" === c && "object" === a && t.deep ? (f = u(r, o, t.diff), (f === !0 || f.length) && (n = !0)) : "array" !== c || "undefined" != a && "array" !== a ? (l = i.equals(r, o), l && !t.force || (t.force = null, n = !0)) : (f = s(r, t.last || [], t.diff), ("array" !== a || f === !0 || f.length) && (n = !0));
                    return n && !t.test && ("object" === c && t.deep || "array" === c ? t.last = i.clone(r) : t.last = r, t.fn.call(this, r, o, f), t.once && this._watchers.splice(e, 1)), n
                }
            }, $set: function (t, e) {
                if (null != t) {
                    var n = i.typeOf(t);
                    if ("string" === n || "expression" === t.type) t = this.$expression(t), t.set(this, e); else if ("function" === n) t.call(this, this.data); else for (var r in t) this.$set(r, t[r])
                }
            }, $get: function (t, e) {
                return e && "string" == typeof t ? t : this.$expression(t).get(this)
            }, $update: function () {
                var t = this;
                do {
                    if (t.data.isolate || !t.$parent) break;
                    t = t.$parent
                } while (t);
                var e = t.$phase;
                return t.$phase = "digest", this.$set.apply(this, arguments), t.$phase = e, t.$digest(), this
            }, _record: function () {
                this._records || (this._records = []), this._records.push([])
            }, _release: function () {
                return this._records.pop()
            }
        };
        i.extend(r.prototype, c), r.mixTo = function (t) {
            return t = "function" == typeof t ? t.prototype : t, i.extend(t, c)
        }, t.exports = r
    }, function (t, e, n) {
        var r = n(1).exprCache, i = (n(5), n(13));
        t.exports = {
            expression: function (t, e) {
                if ("string" == typeof t && (t = t.trim()) && (t = r.get(t) || r.set(t, new i(t, {
                    mode: 2,
                    expression: !0
                }).expression())), t) return t
            }, parse: function (t) {
                return new i(t).parse()
            }
        }
    }, function (t, e, n) {
        var r = t.exports = {};
        r.json = {
            get: function (t) {
                return "undefined" != typeof JSON ? JSON.stringify(t) : t
            }, set: function (t) {
                return "undefined" != typeof JSON ? JSON.parse(t) : t
            }
        }, r.last = function (t) {
            return t && t[t.length - 1]
        }, r.average = function (t, e) {
            return t = t || [], t.length ? r.total(t, e) / t.length : 0
        }, r.total = function (t, e) {
            var n = 0;
            if (t) return t.forEach(function (t) {
                n += e ? t[e] : t
            }), n
        }
    }, function (t, e, n) {
        function r(t, e) {
            for (var n in e) void 0 === t[n] && (t[n] = e[n]);
            return e
        }

        var i = [].slice, o = {}.toString;
        t.exports = function () {
            r(String.prototype, {
                trim: function () {
                    return this.replace(/^\s+|\s+$/g, "")
                }
            }), r(Array.prototype, {
                indexOf: function (t, e) {
                    e = e || 0;
                    for (var n = e, r = this.length; n < r; n++) if (this[n] === t) return n;
                    return -1
                }, forEach: function (t, e) {
                    var n = 0, r = Object(this), i = r.length >>> 0;
                    if ("function" != typeof t) throw new TypeError(t + " is not a function");
                    for (; n < i;) {
                        var o;
                        n in r && (o = r[n], t.call(e, o, n, r)), n++
                    }
                }, filter: function (t, e) {
                    var n = Object(this), r = n.length >>> 0;
                    if ("function" != typeof t) throw new TypeError;
                    for (var i = [], o = 0; o < r; o++) if (o in n) {
                        var a = n[o];
                        t.call(e, a, o, n) && i.push(a)
                    }
                    return i
                }
            }), r(Function.prototype, {
                bind: function (t) {
                    var e = this, n = i.call(arguments, 1);
                    return function () {
                        var r = n.concat(i.call(arguments));
                        return e.apply(t, r)
                    }
                }
            }), r(Array, {
                isArray: function (t) {
                    return "[object Array]" === o.call(t)
                }
            })
        }
    }, function (t, e, n) {
        var r = {
            quot: 34,
            amp: 38,
            apos: 39,
            lt: 60,
            gt: 62,
            nbsp: 160,
            iexcl: 161,
            cent: 162,
            pound: 163,
            curren: 164,
            yen: 165,
            brvbar: 166,
            sect: 167,
            uml: 168,
            copy: 169,
            ordf: 170,
            laquo: 171,
            not: 172,
            shy: 173,
            reg: 174,
            macr: 175,
            deg: 176,
            plusmn: 177,
            sup2: 178,
            sup3: 179,
            acute: 180,
            micro: 181,
            para: 182,
            middot: 183,
            cedil: 184,
            sup1: 185,
            ordm: 186,
            raquo: 187,
            frac14: 188,
            frac12: 189,
            frac34: 190,
            iquest: 191,
            Agrave: 192,
            Aacute: 193,
            Acirc: 194,
            Atilde: 195,
            Auml: 196,
            Aring: 197,
            AElig: 198,
            Ccedil: 199,
            Egrave: 200,
            Eacute: 201,
            Ecirc: 202,
            Euml: 203,
            Igrave: 204,
            Iacute: 205,
            Icirc: 206,
            Iuml: 207,
            ETH: 208,
            Ntilde: 209,
            Ograve: 210,
            Oacute: 211,
            Ocirc: 212,
            Otilde: 213,
            Ouml: 214,
            times: 215,
            Oslash: 216,
            Ugrave: 217,
            Uacute: 218,
            Ucirc: 219,
            Uuml: 220,
            Yacute: 221,
            THORN: 222,
            szlig: 223,
            agrave: 224,
            aacute: 225,
            acirc: 226,
            atilde: 227,
            auml: 228,
            aring: 229,
            aelig: 230,
            ccedil: 231,
            egrave: 232,
            eacute: 233,
            ecirc: 234,
            euml: 235,
            igrave: 236,
            iacute: 237,
            icirc: 238,
            iuml: 239,
            eth: 240,
            ntilde: 241,
            ograve: 242,
            oacute: 243,
            ocirc: 244,
            otilde: 245,
            ouml: 246,
            divide: 247,
            oslash: 248,
            ugrave: 249,
            uacute: 250,
            ucirc: 251,
            uuml: 252,
            yacute: 253,
            thorn: 254,
            yuml: 255,
            fnof: 402,
            Alpha: 913,
            Beta: 914,
            Gamma: 915,
            Delta: 916,
            Epsilon: 917,
            Zeta: 918,
            Eta: 919,
            Theta: 920,
            Iota: 921,
            Kappa: 922,
            Lambda: 923,
            Mu: 924,
            Nu: 925,
            Xi: 926,
            Omicron: 927,
            Pi: 928,
            Rho: 929,
            Sigma: 931,
            Tau: 932,
            Upsilon: 933,
            Phi: 934,
            Chi: 935,
            Psi: 936,
            Omega: 937,
            alpha: 945,
            beta: 946,
            gamma: 947,
            delta: 948,
            epsilon: 949,
            zeta: 950,
            eta: 951,
            theta: 952,
            iota: 953,
            kappa: 954,
            lambda: 955,
            mu: 956,
            nu: 957,
            xi: 958,
            omicron: 959,
            pi: 960,
            rho: 961,
            sigmaf: 962,
            sigma: 963,
            tau: 964,
            upsilon: 965,
            phi: 966,
            chi: 967,
            psi: 968,
            omega: 969,
            thetasym: 977,
            upsih: 978,
            piv: 982,
            bull: 8226,
            hellip: 8230,
            prime: 8242,
            Prime: 8243,
            oline: 8254,
            frasl: 8260,
            weierp: 8472,
            image: 8465,
            real: 8476,
            trade: 8482,
            alefsym: 8501,
            larr: 8592,
            uarr: 8593,
            rarr: 8594,
            darr: 8595,
            harr: 8596,
            crarr: 8629,
            lArr: 8656,
            uArr: 8657,
            rArr: 8658,
            dArr: 8659,
            hArr: 8660,
            forall: 8704,
            part: 8706,
            exist: 8707,
            empty: 8709,
            nabla: 8711,
            isin: 8712,
            notin: 8713,
            ni: 8715,
            prod: 8719,
            sum: 8721,
            minus: 8722,
            lowast: 8727,
            radic: 8730,
            prop: 8733,
            infin: 8734,
            ang: 8736,
            and: 8743,
            or: 8744,
            cap: 8745,
            cup: 8746,
            "int": 8747,
            there4: 8756,
            sim: 8764,
            cong: 8773,
            asymp: 8776,
            ne: 8800,
            equiv: 8801,
            le: 8804,
            ge: 8805,
            sub: 8834,
            sup: 8835,
            nsub: 8836,
            sube: 8838,
            supe: 8839,
            oplus: 8853,
            otimes: 8855,
            perp: 8869,
            sdot: 8901,
            lceil: 8968,
            rceil: 8969,
            lfloor: 8970,
            rfloor: 8971,
            lang: 9001,
            rang: 9002,
            loz: 9674,
            spades: 9824,
            clubs: 9827,
            hearts: 9829,
            diams: 9830,
            OElig: 338,
            oelig: 339,
            Scaron: 352,
            scaron: 353,
            Yuml: 376,
            circ: 710,
            tilde: 732,
            ensp: 8194,
            emsp: 8195,
            thinsp: 8201,
            zwnj: 8204,
            zwj: 8205,
            lrm: 8206,
            rlm: 8207,
            ndash: 8211,
            mdash: 8212,
            lsquo: 8216,
            rsquo: 8217,
            sbquo: 8218,
            ldquo: 8220,
            rdquo: 8221,
            bdquo: 8222,
            dagger: 8224,
            Dagger: 8225,
            permil: 8240,
            lsaquo: 8249,
            rsaquo: 8250,
            euro: 8364
        };
        t.exports = r
    }, function (t, e, n) {
        function r(t) {
            var e, n = 0, r = 0, o = 0, a = 0, s = 0, u = 5 / 3;
            return window.getComputedStyle && (e = window.getComputedStyle(t), r = i(e[f + "Duration"]) || r, o = i(e[f + "Delay"]) || o, a = i(e[p + "Duration"]) || a, s = i(e[p + "Delay"]) || s, n = Math.max(r + o, a + s)), 1e3 * n * u
        }

        function i(t) {
            var e, n = 0;
            return t ? (t.split(",").forEach(function (t) {
                e = parseFloat(t), e > n && (n = e)
            }), n) : 0
        }

        var o = n(5), a = n(4), s = {}, u = n(1), c = "transitionend", l = "animationend", f = "transition",
            p = "animation";
        "ontransitionend" in window || ("onwebkittransitionend" in window ? (c += " webkitTransitionEnd", f = "webkitTransition") : ("onotransitionend" in a.tNode || "Opera" === navigator.appName) && (c += " oTransitionEnd", f = "oTransition")), "onanimationend" in window || ("onwebkitanimationend" in window ? (l += " webkitAnimationEnd", p = "webkitAnimation") : "onoanimationend" in a.tNode && (l += " oAnimationEnd", p = "oAnimation")), s.inject = function (t, e, n, r) {
            if (r = r || o.noop, Array.isArray(t)) {
                for (var i = a.fragment(), s = 0, u = 0, c = t.length; u < c; u++) i.appendChild(t[u]);
                a.inject(i, e, n);
                var l = function () {
                    s++, s === c && r()
                };
                for (c === s && r(), u = 0; u < c; u++) t[u].onenter ? t[u].onenter(l) : l()
            } else a.inject(t, e, n), t.onenter ? t.onenter(r) : r()
        }, s.remove = function (t, e) {
            function n() {
                r++, r === o && e && e()
            }

            if (t) {
                var r = 0;
                if (Array.isArray(t)) {
                    for (var i = 0, o = t.length; i < o; i++) s.remove(t[i], n);
                    return t
                }
                t.onleave ? t.onleave(function () {
                    h(t, e)
                }) : h(t, e)
            }
        };
        var h = function (t, e) {
            a.remove(t), e && e()
        };
        s.startClassAnimate = function (t, e, n, i) {
            var s, f, p, h;
            return !l && !c || u.isRunning ? n() : (h = 4 !== i ? o.once(function () {
                p && clearTimeout(p), 2 === i && a.delClass(t, s), 3 !== i && a.delClass(t, e), a.off(t, l, h), a.off(t, c, h), n()
            }) : o.once(function () {
                p && clearTimeout(p), n()
            }), 2 === i ? (a.addClass(t, e), s = o.map(e.split(/\s+/), function (t) {
                return t + "-active"
            }).join(" "), a.nextReflow(function () {
                a.addClass(t, s), f = r(t), p = setTimeout(h, f)
            })) : 4 === i ? a.nextReflow(function () {
                a.delClass(t, e), f = r(t), p = setTimeout(h, f)
            }) : a.nextReflow(function () {
                a.addClass(t, e), f = r(t), p = setTimeout(h, f)
            }), a.on(t, l, h), a.on(t, c, h), h)
        }, s.startStyleAnimate = function (t, e, n) {
            var i, s, u;
            return a.nextReflow(function () {
                a.css(t, e), i = r(t), u = setTimeout(s, i)
            }), s = o.once(function () {
                u && clearTimeout(u), a.off(t, l, s), a.off(t, c, s), n()
            }), a.on(t, l, s), a.on(t, c, s), s
        }, t.exports = s
    }, function (t, e, n) {
        function r(t, e, n) {
            if (n) for (var r, i = t.target; i && i !== n;) {
                for (var o = 0, a = e.length; o < a; o++) r = e[o], r && r.element === i && r.fire(t);
                i = i.parentNode
            }
        }

        var i = n(5), o = n(4), a = n(3);
        a._addProtoInheritCache("event"), a.directive(/^on-\w+$/, function (t, e, n, r) {
            if (n && e) {
                var i = n.split("-")[1];
                return this._handleEvent(t, i, e, r)
            }
        }), a.directive(/^(delegate|de)-\w+$/, function (t, e, n) {
            function a(t) {
                r(t, u[c], s.parentNode)
            }

            var s = this.$root, u = s._delegates || (s._delegates = {});
            if (n && e) {
                var c = n.split("-")[1], l = i.handleEvent.call(this, e, c);
                u[c] || (u[c] = [], s.parentNode ? o.on(s.parentNode, c, a) : s.$on("$inject", function (t, e, n) {
                    var r = this.parentNode;
                    n && o.off(n, c, a), r && o.on(this.parentNode, c, a)
                }), s.$on("$destroy", function () {
                    s.parentNode && o.off(s.parentNode, c, a), u[c] = null
                }));
                var f = {element: t, fire: l};
                return u[c].push(f), function () {
                    var t = u[c];
                    if (t && t.length) for (var e = 0, n = t.length; e < n; e++) t[e] === f && t.splice(e, 1)
                }
            }
        })
    }, function (t, e, n) {
        function r(t, e) {
            function n() {
                e.set(r, this.value), i.last = this.value, r.$update()
            }

            var r = this, i = this.$watch(e, function (e) {
                var n = s.slice(t.getElementsByTagName("option"));
                n.forEach(function (n, r) {
                    n.value == e && (t.selectedIndex = r)
                })
            });
            return u.on(t, "change", n), void 0 === e.get(r) && t.value && e.set(r, t.value), function () {
                u.off(t, "change", n)
            }
        }

        function i(t, e) {
            var n = this, r = this.$watch(e, function (e) {
                t.value !== e && (t.value = null == e ? "" : "" + e)
            }), i = function (t) {
                var i = this;
                if ("cut" === t.type || "paste" === t.type) s.nextTick(function () {
                    var t = i.value;
                    e.set(n, t), r.last = t, n.$update()
                }); else {
                    var o = i.value;
                    e.set(n, o), r.last = o, n.$update()
                }
            };
            return 9 !== u.msie && "oninput" in u.tNode ? t.addEventListener("input", i) : (u.on(t, "paste", i), u.on(t, "keyup", i), u.on(t, "cut", i), u.on(t, "change", i)), void 0 === e.get(n) && t.value && e.set(n, t.value), function () {
                9 !== u.msie && "oninput" in u.tNode ? t.removeEventListener("input", i) : (u.off(t, "paste", i), u.off(t, "keyup", i), u.off(t, "cut", i), u.off(t, "change", i))
            }
        }

        function o(t, e) {
            var n = this, r = this.$watch(e, function (e) {
                u.attr(t, "checked", !!e)
            }), i = function () {
                var t = this.checked;
                e.set(n, t), r.last = t, n.$update()
            };
            return e.set && u.on(t, "change", i), void 0 === e.get(n) && e.set(n, !!t.checked), function () {
                e.set && u.off(t, "change", i)
            }
        }

        function a(t, e) {
            var n = this, r = (this.$watch(e, function (e) {
                e == t.value ? t.checked = !0 : t.checked = !1
            }), function () {
                var t = this.value;
                e.set(n, t), n.$update()
            });
            return e.set && u.on(t, "change", r), void 0 === e.get(n) && t.checked && e.set(n, t.value), function () {
                e.set && u.off(t, "change", r)
            }
        }

        var s = n(5), u = n(4), c = n(3), l = {text: i, select: r, checkbox: o, radio: a};
        c.directive("r-model", function (t, e) {
            var n = t.tagName.toLowerCase(), r = n;
            return "input" === r ? r = t.type || "text" : "textarea" === r && (r = "text"), "string" == typeof e && (e = this.$expression(e)), l[r] ? l[r].call(this, t, e) : "input" === n ? l.text.call(this, t, e) : void 0
        })
    }, function (t, e, n) {
        function r(t, e) {
            var n = t.length, r = e.length;
            if (n !== r) return !0;
            for (var i = 0; i < n; i++) if (t[i] !== e[i]) return !0;
            return !1
        }

        function i(t, e) {
            return t === e
        }

        function o(t, e, n) {
            for (var r = t.length, o = e.length, n = n || i, a = [], s = 0; s <= r; s++) a.push([s]);
            for (var u = 1; u <= o; u++) a[0][u] = u;
            for (var s = 1; s <= r; s++) for (var u = 1; u <= o; u++) n(t[s - 1], e[u - 1]) ? a[s][u] = a[s - 1][u - 1] : a[s][u] = Math.min(a[s - 1][u] + 1, a[s][u - 1] + 1);
            return a
        }

        function a(t, e, n, i) {
            if (!n) return r(t, e);
            for (var a = o(e, t, i), s = e.length, u = s, c = t.length, l = c, f = [], p = a[u][l]; u > 0 || l > 0;) if (0 !== u) if (0 !== l) {
                var h = a[u - 1][l - 1], d = a[u - 1][l], v = a[u][l - 1], g = Math.min(v, d, h);
                g === d ? (f.unshift(2), u--, p = d) : g === h ? (h === p ? f.unshift(0) : (f.unshift(1), p = h), u--, l--) : (f.unshift(3), l--, p = v)
            } else f.unshift(2), u--; else f.unshift(3), l--;
            var m = 0, y = 3, x = 2, _ = 1, s = 0;
            c = 0;
            for (var b = [], w = {
                index: null,
                add: 0,
                removed: []
            }, u = 0; u < f.length; u++) switch (f[u] > 0 ? null === w.index && (w.index = c) : null != w.index && (b.push(w), w = {
                index: null,
                add: 0,
                removed: []
            }), f[u]) {
                case m:
                    s++, c++;
                    break;
                case y:
                    w.add++, c++;
                    break;
                case x:
                    w.removed.push(e[s]), s++;
                    break;
                case _:
                    w.add++, w.removed.push(e[s]), s++, c++
            }
            return null != w.index && b.push(w), b
        }

        function s(t, e, n) {
            if (n) {
                var r = u.keys(t), i = u.keys(e);
                return a(r, i, n, function (n, r) {
                    return t[r] === e[n]
                })
            }
            for (var o in t) if (e[o] !== t[o]) return !0;
            for (var s in e) if (e[s] !== t[s]) return !0;
            return !1
        }

        var u = n(5);
        t.exports = {diffArray: a, diffObject: s}
    }, function (t, e, n) {
        t.exports = {
            element: function (t, e, n) {
                return {type: "element", tag: t, attrs: e, children: n}
            }, attribute: function (t, e, n) {
                return {type: "attribute", name: t, value: e, mdf: n}
            }, "if": function (t, e, n) {
                return {type: "if", test: t, consequent: e, alternate: n}
            }, list: function (t, e, n, r, i) {
                return {type: "list", sequence: t, alternate: r, variable: e, body: n, track: i}
            }, expression: function (t, e, n) {
                return {type: "expression", body: t, constant: n || !1, setbody: e || !1}
            }, text: function (t) {
                return {type: "text", text: t}
            }, template: function (t) {
                return {type: "template", content: t}
            }
        }
    }])
}), Object.keys || (Object.keys = function () {
    var t = Object.prototype.hasOwnProperty, e = !{toString: null}.propertyIsEnumerable("toString"),
        n = ["toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "constructor"],
        r = n.length;
    return function (i) {
        if ("object" != typeof i && "function" != typeof i || null === i) throw new TypeError("Object.keys called on non-object");
        var o = [];
        for (var a in i) t.call(i, a) && o.push(a);
        if (e) for (var s = 0; s < r; s++) t.call(i, n[s]) && o.push(n[s]);
        return o
    }
}()), Array.prototype.find || (Array.prototype.find = function (t) {
    if (null == this) throw new TypeError("Array.prototype.find called on null or undefined");
    if ("function" != typeof t) throw new TypeError("predicate must be a function");
    for (var e, n = Object(this), r = n.length >>> 0, i = arguments[1], o = 0; o < r; o++) if (e = n[o], t.call(i, e, o, n)) return e
}), Array.prototype.includes || (Array.prototype.includes = function (t, e) {
    function n(t, e) {
        return t === e || "number" == typeof t && "number" == typeof e && isNaN(t) && isNaN(e)
    }

    if (null == this) throw new TypeError('"this" is null or not defined');
    var r = Object(this), i = r.length >>> 0;
    if (0 === i) return !1;
    for (var o = 0 | e, a = Math.max(o >= 0 ? o : i - Math.abs(o), 0); a < i;) {
        if (n(r[a], t)) return !0;
        a++
    }
    return !1
}), Array.prototype.forEach || (Array.prototype.forEach = function (t, e) {
    var n, r;
    if (null == this) throw new TypeError(" this is null or not defined");
    var i = Object(this), o = i.length >>> 0;
    if ("function" != typeof t) throw new TypeError(t + " is not a function");
    for (arguments.length > 1 && (n = e), r = 0; r < o;) {
        var a;
        r in i && (a = i[r], t.call(n, a, r, i)), r++
    }
}), String.prototype.trim || (String.prototype.trim = function () {
    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "")
}), function (t, e) {
    "object" == typeof exports && "object" == typeof module ? module.exports = e(require("regularjs")) : "function" == typeof define && define.amd ? define(["Regular"], e) : "object" == typeof exports ? exports.R = e(require("regularjs")) : t.R = e(t.Regular)
}(this, function (t) {
    return function (t) {
        function e(r) {
            if (n[r]) return n[r].exports;
            var i = n[r] = {exports: {}, id: r, loaded: !1};
            return t[r].call(i.exports, i, i.exports, e), i.loaded = !0, i.exports
        }

        var n = {};
        return e.m = t, e.c = n, e.p = "", e(0)
    }([function (t, e, n) {
        "use strict";
        e.__esModule = !0, e.Counter = e.Digitron = e.CarouselItem = e.Carousel = e.Tab = e.Tabs = e._ = e.Component = void 0;
        var r = n(1), i = n(7), o = n(16), a = n(21);
        e.Component = r.Component, e._ = r._, e.Tabs = i.Tabs, e.Tab = i.Tab, e.Carousel = o.Carousel, e.CarouselItem = o.CarouselItem, e.Digitron = a.Digitron, e.Counter = a.Counter
    }, function (t, e, n) {
        "use strict";

        function r(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        e.__esModule = !0, e._ = e.Component = void 0;
        var i = n(2), o = r(i), a = n(5), s = r(a);
        e.Component = o["default"], e._ = s["default"]
    }, function (t, e, n) {
        "use strict";

        function r(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        e.__esModule = !0;
        var i = n(3), o = r(i), a = n(4), s = r(a), u = n(6), c = r(u), l = n(5), f = r(l), p = o["default"].extend({
            config: function () {
                this.defaults({readonly: !1, disabled: !1, visible: !0, "class": ""}), this.supr()
            }, defaults: function () {
                for (var t = arguments.length, e = Array(t), n = 0; n < t; n++) e[n] = arguments[n];
                return f["default"].defaults.apply(f["default"], [this.data].concat(e))
            }, watch: function () {
            }
        }).filter(s["default"]).directive(c["default"]);
        e["default"] = p
    }, function (e, n) {
        e.exports = t
    }, function (t, e, n) {
        "use strict";

        function r(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        e.__esModule = !0;
        var i = n(5), o = r(i), a = {dateFormat: o["default"].dateFormat, format: o["default"].format};
        e["default"] = a
    }, function (t, e, n) {
        "use strict";

        function r(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        e.__esModule = !0;
        var i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
            return typeof t
        } : function (t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        }, o = n(3), a = r(o), s = a["default"].dom;
        a["default"].prototype.$once || (a["default"].prototype.$once = function (t, e) {
            var n = function r() {
                for (var n = arguments.length, i = Array(n), o = 0; o < n; o++) i[o] = arguments[o];
                e && e.apply(this, i), this.$off(t, r)
            };
            return this.$on(t, n)
        });
        var u = {
            noop: a["default"].util.noop, defaults: function (t) {
                for (var e = arguments.length, n = Array(e > 1 ? e - 1 : 0), r = 1; r < e; r++) n[r - 1] = arguments[r];
                return n.forEach(function (e) {
                    for (var n in e) e.hasOwnProperty(n) && void 0 === t[n] && (t[n] = e[n])
                }), t
            }, createBoolDirective: function (t) {
                return function (e, n) {
                    var r = this;
                    "object" === ("undefined" == typeof n ? "undefined" : i(n)) && "expression" === n.type ? this.$watch(n, function (n, i) {
                        !n != !i && t.call(r, e, n)
                    }) : void 0 === n || "" === n ? t.call(this, e, !0) : t.call(this, e, !!n)
                }
            }, createBoolClassDirective: function (t) {
                return u.createBoolDirective(function (e, n) {
                    s[n ? "addClass" : "delClass"](e, t)
                })
            }, dateFormat: function () {
                var t = {
                    yyyy: function (t) {
                        return t.getFullYear()
                    }, MM: function (t) {
                        return String(t.getMonth() + 1).padStart(2, "0")
                    }, dd: function (t) {
                        return String(t.getDate()).padStart(2, "0")
                    }, HH: function (t) {
                        return String(t.getHours()).padStart(2, "0")
                    }, mm: function (t) {
                        return String(t.getMinutes()).padStart(2, "0")
                    }, ss: function (t) {
                        return String(t.getSeconds()).padStart(2, "0")
                    }
                }, e = new RegExp(Object.keys(t).join("|"), "g");
                return function (n) {
                    var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "yyyy-MM-dd HH:mm";
                    return n ? (n = new Date(n), r.replace(e, function (e) {
                        return t[e](n)
                    })) : ""
                }
            }(), format: function (t, e) {
                for (var n = arguments.length, r = Array(n > 2 ? n - 2 : 0), i = 2; i < n; i++) r[i - 2] = arguments[i];
                return u[e + "Format"].apply(u, [t].concat(r))
            }
        };
        e["default"] = u
    }, function (t, e, n) {
        "use strict";

        function r(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        e.__esModule = !0;
        var i = n(5), o = r(i), a = {};
        a["z-crt"] = o["default"].createBoolClassDirective("z-crt"), a["z-sel"] = o["default"].createBoolClassDirective("z-sel"), a["z-chk"] = o["default"].createBoolClassDirective("z-chk"), a["z-act"] = o["default"].createBoolClassDirective("z-act"), a["z-dis"] = o["default"].createBoolClassDirective("z-dis"), a["r-show"] = o["default"].createBoolDirective(function (t, e) {
            t.style.display = e ? "block" : ""
        }), a["r-autofocus"] = o["default"].createBoolDirective(function (t, e) {
            e && setTimeout(function () {
                return t.focus()
            }, 0)
        }), e["default"] = a
    }, function (t, e, n) {
        "use strict";

        function r(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        e.__esModule = !0, e.Tab = e.Tabs = void 0;
        var i = n(8), o = r(i), a = n(15), s = r(a);
        e.Tabs = o["default"], e.Tab = s["default"]
    }, function (t, e, n) {
        "use strict";

        function r(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        e.__esModule = !0;
        var i = n(9), o = n(14), a = r(o), s = i.ListView.extend({
            name: "tabs", template: a["default"], config: function () {
                this.defaults({current: 0, titleTemplate: void 0}), this.supr()
            }, watch: function () {
                var t = this;
                this.$watch("current", function (e, n) {
                    t.data._selected = t.data._list[e], t.$emit("change", {
                        sender: t,
                        selected: t.data._selected,
                        current: e
                    })
                }), this.$watch("_selected", function (e, n) {
                    t.data.current = e ? t.data._list.indexOf(e) : e
                })
            }, select: function (t) {
                this.data.readonly || this.data.disabled || (this.data._selected = t, this.$emit("select", {
                    sender: this,
                    selected: t,
                    current: this.data._list.indexOf(t)
                }))
            }
        });
        e["default"] = s
    }, function (t, e, n) {
        "use strict";

        function r(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        e.__esModule = !0, e.Item = e.ListView = void 0;
        var i = n(10), o = r(i), a = n(12), s = r(a);
        e.ListView = o["default"], e.Item = s["default"]
    }, function (t, e, n) {
        "use strict";

        function r(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        e.__esModule = !0;
        var i = n(1), o = n(11), a = r(o), s = i.Component.extend({
            name: "listView", template: a["default"], config: function () {
                this.defaults({
                    _list: [],
                    _selected: void 0,
                    value: void 0,
                    multiple: !1,
                    cancelable: !1
                }), this.supr(), this.watch()
            }, watch: function () {
                var t = this;
                this.$watch("value", function (e, n) {
                    t.data._selected && t.data._selected.data.value === e || (t.data._selected = t.data._list.find(function (t) {
                        return t.data.value === e
                    })), t.$emit("change", {sender: t, selected: t.data._selected, value: e})
                }), this.$watch("_selected", function (e, n) {
                    n && (n.data.selected = !1), e && (e.data.selected = !0), t.data.value = e ? e.data.value : e
                })
            }, select: function (t) {
                this.data.readonly || this.data.disabled || (this.data.multiple ? t.data.selected = !t.data.selected : this.data.cancelable && this.data._selected === t ? this.data._selected = void 0 : this.data._selected = t, this.$emit("select", {
                    sender: this,
                    selected: t,
                    value: t.data.value
                }))
            }
        });
        e["default"] = s
    }, function (t, e) {
        t.exports = '<ul class="m-listView {class}" z-dis={disabled} r-hide={!visible}>\n    {#inc this.$body}\n</ul>\n'
    }, function (t, e, n) {
        "use strict";

        function r(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        e.__esModule = !0;
        var i = n(1), o = n(13), a = r(o), s = i.Component.extend({
            name: "item", template: a["default"], config: function () {
                this.defaults({
                    value: void 0,
                    selected: !1,
                    disabled: !1,
                    divider: !1,
                    title: void 0
                }), this.supr(), this.$outer.data._list.push(this), this.$outer.data.multiple || (void 0 !== this.data.value && this.$outer.data.value === this.data.value && (this.data.selected = !0), this.data.selected && (this.$outer.data._selected = this))
            }, destroy: function () {
                this.$outer.data._selected === this && (this.$outer.data._selected = void 0);
                var t = this.$outer.data._list.indexOf(this);
                ~t && this.$outer.data._list.splice(t, 1), this.supr()
            }, select: function () {
                this.data.disabled || this.data.divider || (this.$outer.select(this), this.$emit("select", {
                    sender: this,
                    selected: this,
                    value: this.data.value
                }))
            }
        }).directive({"z-divider": i._.createBoolClassDirective("z-divider")});
        e["default"] = s
    }, function (t, e) {
        t.exports = '<li class="{class}" z-sel={selected} z-dis={disabled} z-divider={divider} title={title} r-hide={!visible} on-click={this.select()}>\n    {#inc this.$body}\n</li>\n'
    }, function (t, e) {
        t.exports = '<div class="m-tabs {class}" z-dis={disabled} r-hide={!visible}>\n    <ul class="tabs_hd">\n        {#list _list as item}\n        <li z-crt={item === _selected} z-dis={item.data.disabled} title={item.data.title} r-hide={!item.data.visible} on-click={item.select()}>\n            {#if @(titleTemplate)}\n                {#inc @(titleTemplate)}\n            {#else}\n                <span>{item.data.title}</span>\n            {/if}\n        </li>\n        {/list}\n    </ul>\n    <div class="tabs_bd">\n        {#inc this.$body}\n    </div>\n</div>\n'
    }, function (t, e, n) {
        "use strict";
        e.__esModule = !0;
        var r = n(9), i = r.Item.extend({
            name: "tab",
            template: '{#if this.$outer.data._selected === this}<div class="tabs_item" r-animation="on:enter;class:fadeIn;">{#inc this.$body}</div>{/if}',
            config: function () {
                this.defaults({title: ""}), this.supr()
            }
        });
        e["default"] = i
    }, function (t, e, n) {
        "use strict";

        function r(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        e.__esModule = !0, e.CarouselItem = e.Carousel = void 0;
        var i = n(17), o = r(i), a = n(19), s = r(a);
        e.Carousel = o["default"], e.CarouselItem = s["default"]
    }, function (t, e, n) {
        "use strict";

        function r(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        e.__esModule = !0;
        var i = n(1), o = n(18), a = r(o), s = i.Component.extend({
            name: "carousel", template: a["default"], config: function () {
                this.defaults({
                    _list: [],
                    current: 0,
                    active: void 0,
                    duration: 4e3,
                    animation: "",
                    titleTemplate: void 0
                }), this.supr(), this.watch(), this.resetInterval()
            }, watch: function () {
                var t = this;
                this.$watch("current", function (e) {
                    t.$emit("change", {sender: t, current: e})
                })
            }, select: function (t) {
                this.data.active = this.data.current, this.data.current = t
            }, prev: function () {
                var t = this.data._list.length;
                this.data.active = this.data.current, this.data.current = (this.data.current - 1 + t) % t
            }, next: function () {
                var t = this.data._list.length;
                this.data.active = this.data.current, this.data.current = (this.data.current + 1) % t
            }, resetInterval: function () {
                var t = this;
                clearInterval(this._interval), this._interval = setInterval(function () {
                    t.next(), t.$update()
                }, this.data.duration)
            }, stop: function () {
                clearInterval(this._interval)
            }
        });
        e["default"] = s
    }, function (t, e) {
        t.exports = '<div class="m-carousel m-carousel-{animation} {class}" z-dis={disabled} r-hide={!visible}>\n    <div class="carousel_list">\n        {#inc this.$body}\n    </div>\n    <ul class="carousel_nav">\n        {#list _list as item}\n        <li data-title={item.data.title} z-crt={current === item_index} on-click={this.select(item_index) || this.resetInterval()}>\n            {#if @(titleTemplate)}{#inc @(titleTemplate)}{#else}{item.data.title}{/if}\n        </li>\n        {/list}\n    </ul>\n    <!-- <a class="carousel_btn carousel_btn-prev" on-click={this.prev() || this.resetInterval()}></a>\n    <a class="carousel_btn carousel_btn-next" on-click={this.next() || this.resetInterval()}></a> -->\n</div>\n'
    }, function (t, e, n) {
        "use strict";

        function r(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        var i = n(1), o = n(20), a = r(o);
        i.Component.extend({
            name: "carouselItem", template: a["default"], config: function () {
                this.defaults({title: ""}), this.supr(), this.$outer.data._list.push(this)
            }, destroy: function () {
                var t = this.$outer.data._list.indexOf(this);
                ~t && this.$outer.data._list.splice(t, 1), this.supr()
            }, isCurrent: function () {
                return this.$outer.data._list.indexOf(this) === this.$outer.data.current
            }, isActive: function () {
                return this.$outer.data._list.indexOf(this) === this.$outer.data.active
            }, isPrev: function () {
                var t = this.$outer.data._list.indexOf(this), e = this.$outer.data._list.length;
                return t === (this.$outer.data.current - 1 + e) % e
            }, isNext: function () {
                var t = this.$outer.data._list.indexOf(this), e = this.$outer.data._list.length;
                return t === (this.$outer.data.current + 1) % e
            }
        }).directive({
            "z-prev": i._.createBoolClassDirective("z-prev"),
            "z-next": i._.createBoolClassDirective("z-next")
        })
    }, function (t, e) {
        t.exports = '<div class="carousel_item {class}"\n    z-crt={this.isCurrent()}\n    z-act={this.isActive()}\n    z-prev={this.isPrev()}\n    z-next={this.isNext()}>\n    {#inc this.$body}\n</div>\n'
    }, function (t, e, n) {
        "use strict";

        function r(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        e.__esModule = !0, e.Counter = e.Digitron = void 0;
        var i = n(3), o = (r(i), n(22)), a = r(o), s = n(24), u = r(s);
        e.Digitron = a["default"], e.Counter = u["default"]
    }, function (t, e, n) {
        "use strict";

        function r(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        e.__esModule = !0;
        var i = n(1), o = n(23), a = r(o), s = i.Component.extend({
            name: "digitron", template: a["default"], config: function () {
                this.defaults({
                    digit: 0,
                    radix: 10,
                    _direction: "Up",
                    duration: 1e3,
                    animation: "",
                    ANIMATIONS: {
                        scrollUp: "on: enter; class: a-scrollUpIn; on: leave; class: a-scrollUpOut;",
                        scrollDown: "on: enter; class: a-scrollDownIn; on: leave; class: a-scrollDownOut;",
                        flipUp: "on: enter; class: a-flipUpIn; on: leave; class: a-flipUpOut;",
                        flipDown: "on: enter; class: a-flipDownIn; on: leave; class: a-flipDownOut;",
                        flipHalfUp: "on: enter; class: z-front a-flipUpIn; on: leave; class: a-wait;",
                        flipHalfDown: "on: enter; class: z-front a-flipDownIn; on: leave; class: a-wait;"
                    },
                    HELPER_ANIMATIONS: {
                        flipHalfUp: "on: enter; class: a-wait; on: leave; class: z-front a-flipUpOut;",
                        flipHalfDown: "on: enter; class: a-wait; on: leave; class: z-front a-flipDownOut;"
                    }
                }), this.supr()
            }, increase: function () {
                this.data._direction = "Up", ++this.data.digit === this.data.radix && (this.data.digit = 0, this.$emit("carry", {
                    sender: this,
                    digit: this.data.digit
                })), this.$emit("increase", {sender: this, digit: this.data.digit})
            }, decrease: function () {
                this.data._direction = "Down", 0 === this.data.digit-- && (this.data.digit = this.data.radix - 1, this.$emit("borrow", {
                    sender: this,
                    digit: this.data.digit
                })), this.$emit("decrease", {sender: this, digit: this.data.digit})
            }
        });
        e["default"] = s
    }, function (t, e) {
        t.exports = '<span class="u-digitron u-digitron-{animation} {class}" r-hide={!visible}>\n    {#list 0..9 as _digit}\n    {#if digit === _digit}\n        <span class="digitron_digit"\n            r-animation={ANIMATIONS[animation + _direction] || \'\'}\n            style="animation-duration: {duration}ms;">{_digit}</span>\n        <span class="digitron_helper"\n            r-animation={HELPER_ANIMATIONS[animation + _direction] || \'\'}\n            style="animation-duration: {duration}ms;"><span>{_digit}</span></span>\n    {/if}\n    {/list}\n</span>\n'
    }, function (t, e, n) {
        "use strict";

        function r(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        e.__esModule = !0;
        var i = n(1), o = n(25), a = r(o), s = i.Component.extend({
            name: "counter", template: a["default"], config: function () {
                this.defaults({
                    length: 3,
                    number: 0,
                    end: 100,
                    autoStart: !0,
                    duration: 200,
                    animation: "",
                    _digits: []
                }), this.supr(), this.watch(), this._animate = this._animate.bind(this)
            }, watch: function () {
                var t = this;
                this.$watch("number", function (e) {
                    var n = t.data.length;
                    t.data._digits = String(e).slice(-n).padStart(n, "0").split("").map(function (t) {
                        return +t
                    }), t.$emit("change", {sender: t, number: e})
                })
            }, init: function () {
                this.supr(), this.data.autoStart && this.start()
            }, destroy: function () {
                this.supr()
            }, start: function () {
                setTimeout(this._animate, 1.1 * this.data.duration >> 0)
            }, _animate: function () {
                this.data.number !== this.data.end && (this.data.number++, this.$emit("tick", {
                    sender: this,
                    number: this.data.number
                }), this.$update(), setTimeout(this._animate, 1.1 * this.data.duration >> 0))
            }, reset: function () {
                this.data.number = this.data.start
            }
        });
        e["default"] = s
    }, function (t, e) {
        t.exports = '<div class="u-counter {class}" r-hide={!visible}>\n    {#list 0..(length - 1) as index}\n    <digitron digit={_digits[index]} duration={duration} animation={animation} />\n    {/list}\n</div>\n'
    }])
}), function (t, e) {
    "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : (t = t || self, t.Qidian = e())
}(this, function () {
    "use strict";

    function t(t, e) {
        for (var n in e) t.setAttribute(n, e[n])
    }

    function e(t, e) {
        t.onload = function () {
            this.onerror = this.onload = null, e(null, t)
        }, t.onerror = function () {
            this.onerror = this.onload = null, e(new Error("Failed to load " + this.src), t)
        }
    }

    function n(t, e) {
        t.onreadystatechange = function () {
            "complete" != this.readyState && "loaded" != this.readyState || (this.onreadystatechange = null, e(null, t))
        }
    }

    function r(t, e) {
        return e = {exports: {}}, t(e, e.exports), e.exports
    }

    var i = function (r, i, o) {
            var a = document.head || document.getElementsByTagName("head")[0], s = document.createElement("script");
            "function" == typeof i && (o = i, i = {}), i = i || {}, o = o || function () {
            }, s.type = i.type || "text/javascript", s.charset = i.charset || "utf8", s.async = !("async" in i) || !!i.async, s.src = r, i.attrs && t(s, i.attrs), i.text && (s.text = "" + i.text);
            var u = "onload" in s ? e : n;
            u(s, o), s.onload || e(s, o), a.appendChild(s)
        },
        o = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : {},
        a = r(function (t, e) {
            (function () {
                function n(t, e) {
                    if (t !== e) {
                        var n = null === t, r = t === N, i = t === t, o = null === e, a = e === N, s = e === e;
                        if (t > e && !o || !i || n && !a && s || r && s) return 1;
                        if (t < e && !n || !s || o && !r && i || a && i) return -1
                    }
                    return 0
                }

                function r(t, e, n) {
                    for (var r = t.length, i = n ? r : -1; n ? i-- : ++i < r;) if (e(t[i], i, t)) return i;
                    return -1
                }

                function i(t, e, n) {
                    if (e !== e) return g(t, n);
                    for (var r = n - 1, i = t.length; ++r < i;) if (t[r] === e) return r;
                    return -1
                }

                function a(t) {
                    return "function" == typeof t || !1
                }

                function s(t) {
                    return null == t ? "" : t + ""
                }

                function u(t, e) {
                    for (var n = -1, r = t.length; ++n < r && e.indexOf(t.charAt(n)) > -1;) ;
                    return n
                }

                function c(t, e) {
                    for (var n = t.length; n-- && e.indexOf(t.charAt(n)) > -1;) ;
                    return n
                }

                function l(t, e) {
                    return n(t.criteria, e.criteria) || t.index - e.index
                }

                function f(t, e, r) {
                    for (var i = -1, o = t.criteria, a = e.criteria, s = o.length, u = r.length; ++i < s;) {
                        var c = n(o[i], a[i]);
                        if (c) {
                            if (i >= u) return c;
                            var l = r[i];
                            return c * ("asc" === l || l === !0 ? 1 : -1)
                        }
                    }
                    return t.index - e.index
                }

                function p(t) {
                    return Wt[t]
                }

                function h(t) {
                    return Ut[t]
                }

                function d(t, e, n) {
                    return e ? t = Xt[t] : n && (t = Vt[t]), "\\" + t
                }

                function v(t) {
                    return "\\" + Vt[t]
                }

                function g(t, e, n) {
                    for (var r = t.length, i = e + (n ? 0 : -1); n ? i-- : ++i < r;) {
                        var o = t[i];
                        if (o !== o) return i
                    }
                    return -1
                }

                function m(t) {
                    return !!t && "object" == typeof t
                }

                function y(t) {
                    return t <= 160 && t >= 9 && t <= 13 || 32 == t || 160 == t || 5760 == t || 6158 == t || t >= 8192 && (t <= 8202 || 8232 == t || 8233 == t || 8239 == t || 8287 == t || 12288 == t || 65279 == t)
                }

                function x(t, e) {
                    for (var n = -1, r = t.length, i = -1, o = []; ++n < r;) t[n] === e && (t[n] = W, o[++i] = n);
                    return o
                }

                function _(t, e) {
                    for (var n, r = -1, i = t.length, o = -1, a = []; ++r < i;) {
                        var s = t[r], u = e ? e(s, r, t) : s;
                        r && n === u || (n = u, a[++o] = s)
                    }
                    return a
                }

                function b(t) {
                    for (var e = -1, n = t.length; ++e < n && y(t.charCodeAt(e));) ;
                    return e
                }

                function w(t) {
                    for (var e = t.length; e-- && y(t.charCodeAt(e));) ;
                    return e
                }

                function T(t) {
                    return Gt[t]
                }

                function E(t) {
                    function e(t) {
                        if (m(t) && !ks(t) && !(t instanceof K)) {
                            if (t instanceof y) return t;
                            if (ea.call(t, "__chain__") && ea.call(t, "__wrapped__")) return hr(t)
                        }
                        return new y(t)
                    }

                    function o() {
                    }

                    function y(t, e, n) {
                        this.__wrapped__ = t, this.__actions__ = n || [], this.__chain__ = !!e
                    }

                    function K(t) {
                        this.__wrapped__ = t, this.__actions__ = [], this.__dir__ = 1, this.__filtered__ = !1, this.__iteratees__ = [], this.__takeCount__ = Sa, this.__views__ = []
                    }

                    function et() {
                        var t = new K(this.__wrapped__);
                        return t.__actions__ = te(this.__actions__), t.__dir__ = this.__dir__, t.__filtered__ = this.__filtered__, t.__iteratees__ = te(this.__iteratees__), t.__takeCount__ = this.__takeCount__, t.__views__ = te(this.__views__), t
                    }

                    function rt() {
                        if (this.__filtered__) {
                            var t = new K(this);
                            t.__dir__ = -1, t.__filtered__ = !0
                        } else t = this.clone(), t.__dir__ *= -1;
                        return t
                    }

                    function Wt() {
                        var t = this.__wrapped__.value(), e = this.__dir__, n = ks(t), r = e < 0, i = n ? t.length : 0,
                            o = Gn(0, i, this.__views__), a = o.start, s = o.end, u = s - a, c = r ? s : a - 1,
                            l = this.__iteratees__, f = l.length, p = 0, h = Ta(u, this.__takeCount__);
                        if (!n || i < q || i == u && h == u) return nn(r && n ? t.reverse() : t, this.__actions__);
                        var d = [];
                        t:for (; u-- && p < h;) {
                            c += e;
                            for (var v = -1, g = t[c]; ++v < f;) {
                                var m = l[v], y = m.iteratee, x = m.type, _ = y(g);
                                if (x == H) g = _; else if (!_) {
                                    if (x == B) continue t;
                                    break t
                                }
                            }
                            d[p++] = g
                        }
                        return d
                    }

                    function Ut() {
                        this.__data__ = {}
                    }

                    function Gt(t) {
                        return this.has(t) && delete this.__data__[t]
                    }

                    function Jt(t) {
                        return "__proto__" == t ? N : this.__data__[t]
                    }

                    function Xt(t) {
                        return "__proto__" != t && ea.call(this.__data__, t)
                    }

                    function Vt(t, e) {
                        return "__proto__" != t && (this.__data__[t] = e), this
                    }

                    function Yt(t) {
                        var e = t ? t.length : 0;
                        for (this.data = {hash: ma(null), set: new fa}; e--;) this.push(t[e])
                    }

                    function Kt(t, e) {
                        var n = t.data, r = "string" == typeof e || Ii(e) ? n.set.has(e) : n.hash[e];
                        return r ? 0 : -1
                    }

                    function Qt(t) {
                        var e = this.data;
                        "string" == typeof t || Ii(t) ? e.set.add(t) : e.hash[t] = !0
                    }

                    function Zt(t, e) {
                        for (var n = -1, r = t.length, i = -1, o = e.length, a = Bo(r + o); ++n < r;) a[n] = t[n];
                        for (; ++i < o;) a[n++] = e[i];
                        return a
                    }

                    function te(t, e) {
                        var n = -1, r = t.length;
                        for (e || (e = Bo(r)); ++n < r;) e[n] = t[n];
                        return e
                    }

                    function ee(t, e) {
                        for (var n = -1, r = t.length; ++n < r && e(t[n], n, t) !== !1;) ;
                        return t
                    }

                    function ie(t, e) {
                        for (var n = t.length; n-- && e(t[n], n, t) !== !1;) ;
                        return t
                    }

                    function oe(t, e) {
                        for (var n = -1, r = t.length; ++n < r;) if (!e(t[n], n, t)) return !1;
                        return !0
                    }

                    function ae(t, e, n, r) {
                        for (var i = -1, o = t.length, a = r, s = a; ++i < o;) {
                            var u = t[i], c = +e(u);
                            n(c, a) && (a = c, s = u)
                        }
                        return s
                    }

                    function se(t, e) {
                        for (var n = -1, r = t.length, i = -1, o = []; ++n < r;) {
                            var a = t[n];
                            e(a, n, t) && (o[++i] = a)
                        }
                        return o
                    }

                    function ue(t, e) {
                        for (var n = -1, r = t.length, i = Bo(r); ++n < r;) i[n] = e(t[n], n, t);
                        return i
                    }

                    function ce(t, e) {
                        for (var n = -1, r = e.length, i = t.length; ++n < r;) t[i + n] = e[n];
                        return t
                    }

                    function le(t, e, n, r) {
                        var i = -1, o = t.length;
                        for (r && o && (n = t[++i]); ++i < o;) n = e(n, t[i], i, t);
                        return n
                    }

                    function fe(t, e, n, r) {
                        var i = t.length;
                        for (r && i && (n = t[--i]); i--;) n = e(n, t[i], i, t);
                        return n
                    }

                    function pe(t, e) {
                        for (var n = -1, r = t.length; ++n < r;) if (e(t[n], n, t)) return !0;
                        return !1
                    }

                    function he(t, e) {
                        for (var n = t.length, r = 0; n--;) r += +e(t[n]) || 0;
                        return r
                    }

                    function de(t, e) {
                        return t === N ? e : t
                    }

                    function ve(t, e, n, r) {
                        return t !== N && ea.call(r, n) ? t : e
                    }

                    function ge(t, e, n) {
                        for (var r = -1, i = qs(e), o = i.length; ++r < o;) {
                            var a = i[r], s = t[a], u = n(s, e[a], a, t, e);
                            (u === u ? u === s : s !== s) && (s !== N || a in t) || (t[a] = u)
                        }
                        return t
                    }

                    function me(t, e) {
                        return null == e ? t : xe(e, qs(e), t)
                    }

                    function ye(t, e) {
                        for (var n = -1, r = null == t, i = !r && Kn(t), o = i ? t.length : 0, a = e.length, s = Bo(a); ++n < a;) {
                            var u = e[n];
                            i ? s[n] = Qn(u, o) ? t[u] : N : s[n] = r ? N : t[u]
                        }
                        return s
                    }

                    function xe(t, e, n) {
                        n || (n = {});
                        for (var r = -1, i = e.length; ++r < i;) {
                            var o = e[r];
                            n[o] = t[o]
                        }
                        return n
                    }

                    function _e(t, e, n) {
                        var r = typeof t;
                        return "function" == r ? e === N ? t : an(t, e, n) : null == t ? So : "object" == r ? Fe(t) : e === N ? Io(t) : qe(t, e)
                    }

                    function be(t, e, n, r, i, o, a) {
                        var s;
                        if (n && (s = i ? n(t, r, i) : n(t)), s !== N) return s;
                        if (!Ii(t)) return t;
                        var u = ks(t);
                        if (u) {
                            if (s = Jn(t), !e) return te(t, s)
                        } else {
                            var c = ra.call(t), l = c == Y;
                            if (c != Z && c != U && (!l || i)) return zt[c] ? Vn(t, c, e) : i ? t : {};
                            if (s = Xn(l ? {} : t), !e) return me(s, t)
                        }
                        o || (o = []), a || (a = []);
                        for (var f = o.length; f--;) if (o[f] == t) return a[f];
                        return o.push(t), a.push(s), (u ? ee : je)(t, function (r, i) {
                            s[i] = be(r, e, n, i, t, o, a)
                        }), s
                    }

                    function we(t, e, n) {
                        if ("function" != typeof t) throw new Yo(z);
                        return pa(function () {
                            t.apply(N, n)
                        }, e)
                    }

                    function Te(t, e) {
                        var n = t ? t.length : 0, r = [];
                        if (!n) return r;
                        var o = -1, a = zn(), s = a == i, u = s && e.length >= q ? vn(e) : null, c = e.length;
                        u && (a = Kt, s = !1, e = u);
                        t:for (; ++o < n;) {
                            var l = t[o];
                            if (s && l === l) {
                                for (var f = c; f--;) if (e[f] === l) continue t;
                                r.push(l)
                            } else a(e, l, 0) < 0 && r.push(l)
                        }
                        return r
                    }

                    function Ee(t, e) {
                        var n = !0;
                        return Ra(t, function (t, r, i) {
                            return n = !!e(t, r, i)
                        }), n
                    }

                    function Ne(t, e, n, r) {
                        var i = r, o = i;
                        return Ra(t, function (t, a, s) {
                            var u = +e(t, a, s);
                            (n(u, i) || u === r && u === o) && (i = u, o = t)
                        }), o
                    }

                    function Ae(t, e, n, r) {
                        var i = t.length;
                        for (n = null == n ? 0 : +n || 0, n < 0 && (n = -n > i ? 0 : i + n), r = r === N || r > i ? i : +r || 0, r < 0 && (r += i), i = n > r ? 0 : r >>> 0, n >>>= 0; n < i;) t[n++] = e;
                        return t
                    }

                    function Ce(t, e) {
                        var n = [];
                        return Ra(t, function (t, r, i) {
                            e(t, r, i) && n.push(t)
                        }), n
                    }

                    function Se(t, e, n, r) {
                        var i;
                        return n(t, function (t, n, o) {
                            if (e(t, n, o)) return i = r ? n : t, !1
                        }), i
                    }

                    function ke(t, e, n, r) {
                        r || (r = []);
                        for (var i = -1, o = t.length; ++i < o;) {
                            var a = t[i];
                            m(a) && Kn(a) && (n || ks(a) || Ni(a)) ? e ? ke(a, e, n, r) : ce(r, a) : n || (r[r.length] = a)
                        }
                        return r
                    }

                    function $e(t, e) {
                        return Pa(t, e, to)
                    }

                    function je(t, e) {
                        return Pa(t, e, qs)
                    }

                    function Oe(t, e) {
                        return Fa(t, e, qs)
                    }

                    function De(t, e) {
                        for (var n = -1, r = e.length, i = -1, o = []; ++n < r;) {
                            var a = e[n];
                            Di(t[a]) && (o[++i] = a)
                        }
                        return o
                    }

                    function Ie(t, e, n) {
                        if (null != t) {
                            n !== N && n in fr(t) && (e = [n]);
                            for (var r = 0, i = e.length; null != t && r < i;) t = t[e[r++]];
                            return r && r == i ? t : N
                        }
                    }

                    function Me(t, e, n, r, i, o) {
                        return t === e || (null == t || null == e || !Ii(t) && !m(e) ? t !== t && e !== e : Re(t, e, Me, n, r, i, o))
                    }

                    function Re(t, e, n, r, i, o, a) {
                        var s = ks(t), u = ks(e), c = G, l = G;
                        s || (c = ra.call(t), c == U ? c = Z : c != Z && (s = zi(t))), u || (l = ra.call(e), l == U ? l = Z : l != Z && (u = zi(e)));
                        var f = c == Z, p = l == Z, h = c == l;
                        if (h && !s && !f) return Fn(t, e, c);
                        if (!i) {
                            var d = f && ea.call(t, "__wrapped__"), v = p && ea.call(e, "__wrapped__");
                            if (d || v) return n(d ? t.value() : t, v ? e.value() : e, r, i, o, a)
                        }
                        if (!h) return !1;
                        o || (o = []), a || (a = []);
                        for (var g = o.length; g--;) if (o[g] == t) return a[g] == e;
                        o.push(t), a.push(e);
                        var m = (s ? Pn : qn)(t, e, n, r, i, o, a);
                        return o.pop(), a.pop(), m
                    }

                    function Le(t, e, n) {
                        var r = e.length, i = r, o = !n;
                        if (null == t) return !i;
                        for (t = fr(t); r--;) {
                            var a = e[r];
                            if (o && a[2] ? a[1] !== t[a[0]] : !(a[0] in t)) return !1
                        }
                        for (; ++r < i;) {
                            a = e[r];
                            var s = a[0], u = t[s], c = a[1];
                            if (o && a[2]) {
                                if (u === N && !(s in t)) return !1
                            } else {
                                var l = n ? n(u, c, s) : N;
                                if (!(l === N ? Me(c, u, n, !0) : l)) return !1
                            }
                        }
                        return !0
                    }

                    function Pe(t, e) {
                        var n = -1, r = Kn(t) ? Bo(t.length) : [];
                        return Ra(t, function (t, i, o) {
                            r[++n] = e(t, i, o)
                        }), r
                    }

                    function Fe(t) {
                        var e = Wn(t);
                        if (1 == e.length && e[0][2]) {
                            var n = e[0][0], r = e[0][1];
                            return function (t) {
                                return null != t && (t[n] === r && (r !== N || n in fr(t)))
                            }
                        }
                        return function (t) {
                            return Le(t, e)
                        }
                    }

                    function qe(t, e) {
                        var n = ks(t), r = tr(t) && rr(e), i = t + "";
                        return t = pr(t), function (o) {
                            if (null == o) return !1;
                            var a = i;
                            if (o = fr(o), (n || !r) && !(a in o)) {
                                if (o = 1 == t.length ? o : Ie(o, Xe(t, 0, -1)), null == o) return !1;
                                a = Ar(t), o = fr(o)
                            }
                            return o[a] === e ? e !== N || a in o : Me(e, o[a], N, !0)
                        }
                    }

                    function Be(t, e, n, r, i) {
                        if (!Ii(t)) return t;
                        var o = Kn(e) && (ks(e) || zi(e)), a = o ? N : qs(e);
                        return ee(a || e, function (s, u) {
                            if (a && (u = s, s = e[u]), m(s)) r || (r = []), i || (i = []), He(t, e, u, Be, n, r, i); else {
                                var c = t[u], l = n ? n(c, s, u, t, e) : N, f = l === N;
                                f && (l = s), l === N && (!o || u in t) || !f && (l === l ? l === c : c !== c) || (t[u] = l)
                            }
                        }), t
                    }

                    function He(t, e, n, r, i, o, a) {
                        for (var s = o.length, u = e[n]; s--;) if (o[s] == u) return void (t[n] = a[s]);
                        var c = t[n], l = i ? i(c, u, n, t, e) : N, f = l === N;
                        f && (l = u, Kn(u) && (ks(u) || zi(u)) ? l = ks(c) ? c : Kn(c) ? te(c) : [] : qi(u) || Ni(u) ? l = Ni(c) ? Xi(c) : qi(c) ? c : {} : f = !1), o.push(u), a.push(l), f ? t[n] = r(l, u, i, o, a) : (l === l ? l !== c : c === c) && (t[n] = l)
                    }

                    function ze(t) {
                        return function (e) {
                            return null == e ? N : e[t]
                        }
                    }

                    function We(t) {
                        var e = t + "";
                        return t = pr(t), function (n) {
                            return Ie(n, t, e)
                        }
                    }

                    function Ue(t, e) {
                        for (var n = t ? e.length : 0; n--;) {
                            var r = e[n];
                            if (r != i && Qn(r)) {
                                var i = r;
                                ha.call(t, r, 1)
                            }
                        }
                        return t
                    }

                    function Ge(t, e) {
                        return t + ya(Aa() * (e - t + 1))
                    }

                    function Je(t, e, n, r, i) {
                        return i(t, function (t, i, o) {
                            n = r ? (r = !1, t) : e(n, t, i, o)
                        }), n
                    }

                    function Xe(t, e, n) {
                        var r = -1, i = t.length;
                        e = null == e ? 0 : +e || 0, e < 0 && (e = -e > i ? 0 : i + e), n = n === N || n > i ? i : +n || 0, n < 0 && (n += i), i = e > n ? 0 : n - e >>> 0, e >>>= 0;
                        for (var o = Bo(i); ++r < i;) o[r] = t[r + e];
                        return o
                    }

                    function Ve(t, e) {
                        var n;
                        return Ra(t, function (t, r, i) {
                            return n = e(t, r, i), !n
                        }), !!n
                    }

                    function Ye(t, e) {
                        var n = t.length;
                        for (t.sort(e); n--;) t[n] = t[n].value;
                        return t
                    }

                    function Ke(t, e, n) {
                        var r = Bn(), i = -1;
                        e = ue(e, function (t) {
                            return r(t)
                        });
                        var o = Pe(t, function (t) {
                            var n = ue(e, function (e) {
                                return e(t)
                            });
                            return {criteria: n, index: ++i, value: t}
                        });
                        return Ye(o, function (t, e) {
                            return f(t, e, n)
                        })
                    }

                    function Qe(t, e) {
                        var n = 0;
                        return Ra(t, function (t, r, i) {
                            n += +e(t, r, i) || 0
                        }), n
                    }

                    function Ze(t, e) {
                        var n = -1, r = zn(), o = t.length, a = r == i, s = a && o >= q, u = s ? vn() : null, c = [];
                        u ? (r = Kt, a = !1) : (s = !1, u = e ? [] : c);
                        t:for (; ++n < o;) {
                            var l = t[n], f = e ? e(l, n, t) : l;
                            if (a && l === l) {
                                for (var p = u.length; p--;) if (u[p] === f) continue t;
                                e && u.push(f), c.push(l)
                            } else r(u, f, 0) < 0 && ((e || s) && u.push(f), c.push(l))
                        }
                        return c
                    }

                    function tn(t, e) {
                        for (var n = -1, r = e.length, i = Bo(r); ++n < r;) i[n] = t[e[n]];
                        return i
                    }

                    function en(t, e, n, r) {
                        for (var i = t.length, o = r ? i : -1; (r ? o-- : ++o < i) && e(t[o], o, t);) ;
                        return n ? Xe(t, r ? 0 : o, r ? o + 1 : i) : Xe(t, r ? o + 1 : 0, r ? i : o)
                    }

                    function nn(t, e) {
                        var n = t;
                        n instanceof K && (n = n.value());
                        for (var r = -1, i = e.length; ++r < i;) {
                            var o = e[r];
                            n = o.func.apply(o.thisArg, ce([n], o.args))
                        }
                        return n
                    }

                    function rn(t, e, n) {
                        var r = 0, i = t ? t.length : r;
                        if ("number" == typeof e && e === e && i <= ja) {
                            for (; r < i;) {
                                var o = r + i >>> 1, a = t[o];
                                (n ? a <= e : a < e) && null !== a ? r = o + 1 : i = o
                            }
                            return i
                        }
                        return on(t, e, So, n)
                    }

                    function on(t, e, n, r) {
                        e = n(e);
                        for (var i = 0, o = t ? t.length : 0, a = e !== e, s = null === e, u = e === N; i < o;) {
                            var c = ya((i + o) / 2), l = n(t[c]), f = l !== N, p = l === l;
                            if (a) var h = p || r; else h = s ? p && f && (r || null != l) : u ? p && (r || f) : null != l && (r ? l <= e : l < e);
                            h ? i = c + 1 : o = c
                        }
                        return Ta(o, $a)
                    }

                    function an(t, e, n) {
                        if ("function" != typeof t) return So;
                        if (e === N) return t;
                        switch (n) {
                            case 1:
                                return function (n) {
                                    return t.call(e, n)
                                };
                            case 3:
                                return function (n, r, i) {
                                    return t.call(e, n, r, i)
                                };
                            case 4:
                                return function (n, r, i, o) {
                                    return t.call(e, n, r, i, o)
                                };
                            case 5:
                                return function (n, r, i, o, a) {
                                    return t.call(e, n, r, i, o, a)
                                }
                        }
                        return function () {
                            return t.apply(e, arguments)
                        }
                    }

                    function sn(t) {
                        var e = new aa(t.byteLength), n = new da(e);
                        return n.set(new da(t)), e
                    }

                    function un(t, e, n) {
                        for (var r = n.length, i = -1, o = wa(t.length - r, 0), a = -1, s = e.length, u = Bo(s + o); ++a < s;) u[a] = e[a];
                        for (; ++i < r;) u[n[i]] = t[i];
                        for (; o--;) u[a++] = t[i++];
                        return u
                    }

                    function cn(t, e, n) {
                        for (var r = -1, i = n.length, o = -1, a = wa(t.length - i, 0), s = -1, u = e.length, c = Bo(a + u); ++o < a;) c[o] = t[o];
                        for (var l = o; ++s < u;) c[l + s] = e[s];
                        for (; ++r < i;) c[l + n[r]] = t[o++];
                        return c
                    }

                    function ln(t, e) {
                        return function (n, r, i) {
                            var o = e ? e() : {};
                            if (r = Bn(r, i, 3), ks(n)) for (var a = -1, s = n.length; ++a < s;) {
                                var u = n[a];
                                t(o, u, r(u, a, n), n)
                            } else Ra(n, function (e, n, i) {
                                t(o, e, r(e, n, i), i)
                            });
                            return o
                        }
                    }

                    function fn(t) {
                        return mi(function (e, n) {
                            var r = -1, i = null == e ? 0 : n.length, o = i > 2 ? n[i - 2] : N, a = i > 2 ? n[2] : N,
                                s = i > 1 ? n[i - 1] : N;
                            for ("function" == typeof o ? (o = an(o, s, 5), i -= 2) : (o = "function" == typeof s ? s : N, i -= o ? 1 : 0), a && Zn(n[0], n[1], a) && (o = i < 3 ? N : o, i = 1); ++r < i;) {
                                var u = n[r];
                                u && t(e, u, o)
                            }
                            return e
                        })
                    }

                    function pn(t, e) {
                        return function (n, r) {
                            var i = n ? Ha(n) : 0;
                            if (!nr(i)) return t(n, r);
                            for (var o = e ? i : -1, a = fr(n); (e ? o-- : ++o < i) && r(a[o], o, a) !== !1;) ;
                            return n
                        }
                    }

                    function hn(t) {
                        return function (e, n, r) {
                            for (var i = fr(e), o = r(e), a = o.length, s = t ? a : -1; t ? s-- : ++s < a;) {
                                var u = o[s];
                                if (n(i[u], u, i) === !1) break
                            }
                            return e
                        }
                    }

                    function dn(t, e) {
                        function n() {
                            var i = this && this !== ne && this instanceof n ? r : t;
                            return i.apply(e, arguments)
                        }

                        var r = mn(t);
                        return n
                    }

                    function vn(t) {
                        return ma && fa ? new Yt(t) : null
                    }

                    function gn(t) {
                        return function (e) {
                            for (var n = -1, r = No(lo(e)), i = r.length, o = ""; ++n < i;) o = t(o, r[n], n);
                            return o
                        }
                    }

                    function mn(t) {
                        return function () {
                            var e = arguments;
                            switch (e.length) {
                                case 0:
                                    return new t;
                                case 1:
                                    return new t(e[0]);
                                case 2:
                                    return new t(e[0], e[1]);
                                case 3:
                                    return new t(e[0], e[1], e[2]);
                                case 4:
                                    return new t(e[0], e[1], e[2], e[3]);
                                case 5:
                                    return new t(e[0], e[1], e[2], e[3], e[4]);
                                case 6:
                                    return new t(e[0], e[1], e[2], e[3], e[4], e[5]);
                                case 7:
                                    return new t(e[0], e[1], e[2], e[3], e[4], e[5], e[6])
                            }
                            var n = Ma(t.prototype), r = t.apply(n, e);
                            return Ii(r) ? r : n
                        }
                    }

                    function yn(t) {
                        function e(n, r, i) {
                            i && Zn(n, r, i) && (r = N);
                            var o = Ln(n, t, N, N, N, N, N, r);
                            return o.placeholder = e.placeholder, o
                        }

                        return e
                    }

                    function xn(t, e) {
                        return mi(function (n) {
                            var r = n[0];
                            return null == r ? r : (n.push(e), t.apply(N, n))
                        })
                    }

                    function _n(t, e) {
                        return function (n, r, i) {
                            if (i && Zn(n, r, i) && (r = N), r = Bn(r, i, 3), 1 == r.length) {
                                n = ks(n) ? n : lr(n);
                                var o = ae(n, r, t, e);
                                if (!n.length || o !== e) return o
                            }
                            return Ne(n, r, t, e)
                        }
                    }

                    function bn(t, e) {
                        return function (n, i, o) {
                            if (i = Bn(i, o, 3), ks(n)) {
                                var a = r(n, i, e);
                                return a > -1 ? n[a] : N
                            }
                            return Se(n, i, t)
                        }
                    }

                    function wn(t) {
                        return function (e, n, i) {
                            return e && e.length ? (n = Bn(n, i, 3), r(e, n, t)) : -1
                        }
                    }

                    function Tn(t) {
                        return function (e, n, r) {
                            return n = Bn(n, r, 3), Se(e, n, t, !0)
                        }
                    }

                    function En(t) {
                        return function () {
                            for (var e, n = arguments, r = arguments.length, i = t ? r : -1, o = 0, a = Bo(r); t ? i-- : ++i < r;) {
                                var s = a[o++] = n[i];
                                if ("function" != typeof s) throw new Yo(z);
                                !e && y.prototype.thru && "wrapper" == Hn(s) && (e = new y([], (!0)))
                            }
                            for (i = e ? -1 : r; ++i < r;) {
                                s = a[i];
                                var u = Hn(s), c = "wrapper" == u ? Ba(s) : N;
                                e = c && er(c[0]) && c[1] == (I | $ | O | M) && !c[4].length && 1 == c[9] ? e[Hn(c[0])].apply(e, c[3]) : 1 == s.length && er(s) ? e[u]() : e.thru(s)
                            }
                            return function () {
                                var t = arguments, n = t[0];
                                if (e && 1 == t.length && ks(n) && n.length >= q) return e.plant(n).value();
                                for (var i = 0, o = r ? a[i].apply(this, t) : n; ++i < r;) o = a[i].call(this, o);
                                return o
                            }
                        }
                    }

                    function Nn(t, e) {
                        return function (n, r, i) {
                            return "function" == typeof r && i === N && ks(n) ? t(n, r) : e(n, an(r, i, 3))
                        }
                    }

                    function An(t) {
                        return function (e, n, r) {
                            return "function" == typeof n && r === N || (n = an(n, r, 3)), t(e, n, to)
                        }
                    }

                    function Cn(t) {
                        return function (e, n, r) {
                            return "function" == typeof n && r === N || (n = an(n, r, 3)), t(e, n)
                        }
                    }

                    function Sn(t) {
                        return function (e, n, r) {
                            var i = {};
                            return n = Bn(n, r, 3), je(e, function (e, r, o) {
                                var a = n(e, r, o);
                                r = t ? a : r, e = t ? e : a, i[r] = e
                            }), i
                        }
                    }

                    function kn(t) {
                        return function (e, n, r) {
                            return e = s(e), (t ? e : "") + Dn(e, n, r) + (t ? "" : e)
                        }
                    }

                    function $n(t) {
                        var e = mi(function (n, r) {
                            var i = x(r, e.placeholder);
                            return Ln(n, t, N, r, i)
                        });
                        return e
                    }

                    function jn(t, e) {
                        return function (n, r, i, o) {
                            var a = arguments.length < 3;
                            return "function" == typeof r && o === N && ks(n) ? t(n, r, i, a) : Je(n, Bn(r, o, 4), i, a, e)
                        }
                    }

                    function On(t, e, n, r, i, o, a, s, u, c) {
                        function l() {
                            for (var y = arguments, _ = arguments.length, b = _, w = Bo(_); b--;) w[b] = y[b];
                            if (r && (w = un(w, r, i)), o && (w = cn(w, o, a)), d || g) {
                                var T = l.placeholder, E = x(w, T);
                                if (_ -= E.length, _ < c) {
                                    var A = s ? te(s) : N, k = wa(c - _, 0), $ = d ? E : N, j = d ? N : E,
                                        I = d ? w : N, M = d ? N : w;
                                    e |= d ? O : D, e &= ~(d ? D : O), v || (e &= ~(C | S));
                                    var R = [t, e, n, I, $, M, j, A, u, k], L = On.apply(N, R);
                                    return er(t) && za(L, R), L.placeholder = T, L
                                }
                            }
                            var P = p ? n : this, F = h ? P[t] : t;
                            return s && (w = ur(w, s)), f && u < w.length && (w.length = u), this && this !== ne && this instanceof l && (F = m || mn(t)), F.apply(P, w)
                        }

                        var f = e & I, p = e & C, h = e & S, d = e & $, v = e & k, g = e & j, m = h ? N : mn(t);
                        return l
                    }

                    function Dn(t, e, n) {
                        var r = t.length;
                        if (e = +e, r >= e || !_a(e)) return "";
                        var i = e - r;
                        return n = null == n ? " " : n + "", mo(n, ga(i / n.length)).slice(0, i)
                    }

                    function In(t, e, n, r) {
                        function i() {
                            for (var e = arguments, s = -1, u = arguments.length, c = -1, l = r.length, f = Bo(l + u); ++c < l;) f[c] = r[c];
                            for (; u--;) f[c++] = e[++s];
                            var p = this && this !== ne && this instanceof i ? a : t;
                            return p.apply(o ? n : this, f)
                        }

                        var o = e & C, a = mn(t);
                        return i
                    }

                    function Mn(t) {
                        var e = Uo[t];
                        return function (t, n) {
                            return n = n === N ? 0 : +n || 0, n ? (n = ca(10, n), e(t * n) / n) : e(t)
                        }
                    }

                    function Rn(t) {
                        return function (e, n, r, i) {
                            var o = Bn(r);
                            return null == r && o === _e ? rn(e, n, t) : on(e, n, o(r, i, 1), t)
                        }
                    }

                    function Ln(t, e, n, r, i, o, a, s) {
                        var u = e & S;
                        if (!u && "function" != typeof t) throw new Yo(z);
                        var c = r ? r.length : 0;
                        if (c || (e &= ~(O | D), r = i = N), c -= i ? i.length : 0, e & D) {
                            var l = r, f = i;
                            r = i = N
                        }
                        var p = u ? N : Ba(t), h = [t, e, n, r, i, l, f, o, a, s];
                        if (p && (ir(h, p), e = h[1], s = h[9]), h[9] = null == s ? u ? 0 : t.length : wa(s - c, 0) || 0, e == C) var d = dn(h[0], h[2]); else d = e != O && e != (C | O) || h[4].length ? On.apply(N, h) : In.apply(N, h);
                        var v = p ? qa : za;
                        return v(d, h)
                    }

                    function Pn(t, e, n, r, i, o, a) {
                        var s = -1, u = t.length, c = e.length;
                        if (u != c && !(i && c > u)) return !1;
                        for (; ++s < u;) {
                            var l = t[s], f = e[s], p = r ? r(i ? f : l, i ? l : f, s) : N;
                            if (p !== N) {
                                if (p) continue;
                                return !1
                            }
                            if (i) {
                                if (!pe(e, function (t) {
                                    return l === t || n(l, t, r, i, o, a)
                                })) return !1
                            } else if (l !== f && !n(l, f, r, i, o, a)) return !1
                        }
                        return !0
                    }

                    function Fn(t, e, n) {
                        switch (n) {
                            case J:
                            case X:
                                return +t == +e;
                            case V:
                                return t.name == e.name && t.message == e.message;
                            case Q:
                                return t != +t ? e != +e : t == +e;
                            case tt:
                            case nt:
                                return t == e + ""
                        }
                        return !1
                    }

                    function qn(t, e, n, r, i, o, a) {
                        var s = qs(t), u = s.length, c = qs(e), l = c.length;
                        if (u != l && !i) return !1;
                        for (var f = u; f--;) {
                            var p = s[f];
                            if (!(i ? p in e : ea.call(e, p))) return !1
                        }
                        for (var h = i; ++f < u;) {
                            p = s[f];
                            var d = t[p], v = e[p], g = r ? r(i ? v : d, i ? d : v, p) : N;
                            if (!(g === N ? n(d, v, r, i, o, a) : g)) return !1;
                            h || (h = "constructor" == p)
                        }
                        if (!h) {
                            var m = t.constructor, y = e.constructor;
                            if (m != y && "constructor" in t && "constructor" in e && !("function" == typeof m && m instanceof m && "function" == typeof y && y instanceof y)) return !1
                        }
                        return !0
                    }

                    function Bn(t, n, r) {
                        var i = e.callback || Ao;
                        return i = i === Ao ? _e : i, r ? i(t, n, r) : i
                    }

                    function Hn(t) {
                        for (var e = t.name, n = Ia[e], r = n ? n.length : 0; r--;) {
                            var i = n[r], o = i.func;
                            if (null == o || o == t) return i.name
                        }
                        return e
                    }

                    function zn(t, n, r) {
                        var o = e.indexOf || Er;
                        return o = o === Er ? i : o, t ? o(t, n, r) : o
                    }

                    function Wn(t) {
                        for (var e = eo(t), n = e.length; n--;) e[n][2] = rr(e[n][1]);
                        return e
                    }

                    function Un(t, e) {
                        var n = null == t ? N : t[e];
                        return Li(n) ? n : N
                    }

                    function Gn(t, e, n) {
                        for (var r = -1, i = n.length; ++r < i;) {
                            var o = n[r], a = o.size;
                            switch (o.type) {
                                case"drop":
                                    t += a;
                                    break;
                                case"dropRight":
                                    e -= a;
                                    break;
                                case"take":
                                    e = Ta(e, t + a);
                                    break;
                                case"takeRight":
                                    t = wa(t, e - a)
                            }
                        }
                        return {start: t, end: e}
                    }

                    function Jn(t) {
                        var e = t.length, n = new t.constructor(e);
                        return e && "string" == typeof t[0] && ea.call(t, "index") && (n.index = t.index, n.input = t.input), n
                    }

                    function Xn(t) {
                        var e = t.constructor;
                        return "function" == typeof e && e instanceof e || (e = Jo), new e
                    }

                    function Vn(t, e, n) {
                        var r = t.constructor;
                        switch (e) {
                            case it:
                                return sn(t);
                            case J:
                            case X:
                                return new r((+t));
                            case ot:
                            case at:
                            case st:
                            case ut:
                            case ct:
                            case lt:
                            case ft:
                            case pt:
                            case ht:
                                var i = t.buffer;
                                return new r(n ? sn(i) : i, t.byteOffset, t.length);
                            case Q:
                            case nt:
                                return new r(t);
                            case tt:
                                var o = new r(t.source, Ot.exec(t));
                                o.lastIndex = t.lastIndex
                        }
                        return o
                    }

                    function Yn(t, e, n) {
                        null == t || tr(e, t) || (e = pr(e), t = 1 == e.length ? t : Ie(t, Xe(e, 0, -1)), e = Ar(e));
                        var r = null == t ? t : t[e];
                        return null == r ? N : r.apply(t, n)
                    }

                    function Kn(t) {
                        return null != t && nr(Ha(t))
                    }

                    function Qn(t, e) {
                        return t = "number" == typeof t || Mt.test(t) ? +t : -1, e = null == e ? Oa : e, t > -1 && t % 1 == 0 && t < e
                    }

                    function Zn(t, e, n) {
                        if (!Ii(n)) return !1;
                        var r = typeof e;
                        if ("number" == r ? Kn(n) && Qn(e, n.length) : "string" == r && e in n) {
                            var i = n[e];
                            return t === t ? t === i : i !== i
                        }
                        return !1
                    }

                    function tr(t, e) {
                        var n = typeof t;
                        if ("string" == n && Nt.test(t) || "number" == n) return !0;
                        if (ks(t)) return !1;
                        var r = !Et.test(t);
                        return r || null != e && t in fr(e)
                    }

                    function er(t) {
                        var n = Hn(t);
                        if (!(n in K.prototype)) return !1;
                        var r = e[n];
                        if (t === r) return !0;
                        var i = Ba(r);
                        return !!i && t === i[0]
                    }

                    function nr(t) {
                        return "number" == typeof t && t > -1 && t % 1 == 0 && t <= Oa
                    }

                    function rr(t) {
                        return t === t && !Ii(t)
                    }

                    function ir(t, e) {
                        var n = t[1], r = e[1], i = n | r, o = i < I,
                            a = r == I && n == $ || r == I && n == M && t[7].length <= e[8] || r == (I | M) && n == $;
                        if (!o && !a) return t;
                        r & C && (t[2] = e[2], i |= n & C ? 0 : k);
                        var s = e[3];
                        if (s) {
                            var u = t[3];
                            t[3] = u ? un(u, s, e[4]) : te(s), t[4] = u ? x(t[3], W) : te(e[4])
                        }
                        return s = e[5], s && (u = t[5], t[5] = u ? cn(u, s, e[6]) : te(s), t[6] = u ? x(t[5], W) : te(e[6])), s = e[7], s && (t[7] = te(s)), r & I && (t[8] = null == t[8] ? e[8] : Ta(t[8], e[8])), null == t[9] && (t[9] = e[9]), t[0] = e[0], t[1] = i, t
                    }

                    function or(t, e) {
                        return t === N ? e : $s(t, e, or)
                    }

                    function ar(t, e) {
                        t = fr(t);
                        for (var n = -1, r = e.length, i = {}; ++n < r;) {
                            var o = e[n];
                            o in t && (i[o] = t[o])
                        }
                        return i
                    }

                    function sr(t, e) {
                        var n = {};
                        return $e(t, function (t, r, i) {
                            e(t, r, i) && (n[r] = t)
                        }), n
                    }

                    function ur(t, e) {
                        for (var n = t.length, r = Ta(e.length, n), i = te(t); r--;) {
                            var o = e[r];
                            t[r] = Qn(o, n) ? i[o] : N
                        }
                        return t
                    }

                    function cr(t) {
                        for (var e = to(t), n = e.length, r = n && t.length, i = !!r && nr(r) && (ks(t) || Ni(t)), o = -1, a = []; ++o < n;) {
                            var s = e[o];
                            (i && Qn(s, r) || ea.call(t, s)) && a.push(s)
                        }
                        return a
                    }

                    function lr(t) {
                        return null == t ? [] : Kn(t) ? Ii(t) ? t : Jo(t) : oo(t)
                    }

                    function fr(t) {
                        return Ii(t) ? t : Jo(t)
                    }

                    function pr(t) {
                        if (ks(t)) return t;
                        var e = [];
                        return s(t).replace(At, function (t, n, r, i) {
                            e.push(r ? i.replace($t, "$1") : n || t)
                        }), e
                    }

                    function hr(t) {
                        return t instanceof K ? t.clone() : new y(t.__wrapped__, t.__chain__, te(t.__actions__))
                    }

                    function dr(t, e, n) {
                        e = (n ? Zn(t, e, n) : null == e) ? 1 : wa(ya(e) || 1, 1);
                        for (var r = 0, i = t ? t.length : 0, o = -1, a = Bo(ga(i / e)); r < i;) a[++o] = Xe(t, r, r += e);
                        return a
                    }

                    function vr(t) {
                        for (var e = -1, n = t ? t.length : 0, r = -1, i = []; ++e < n;) {
                            var o = t[e];
                            o && (i[++r] = o)
                        }
                        return i
                    }

                    function gr(t, e, n) {
                        var r = t ? t.length : 0;
                        return r ? ((n ? Zn(t, e, n) : null == e) && (e = 1), Xe(t, e < 0 ? 0 : e)) : []
                    }

                    function mr(t, e, n) {
                        var r = t ? t.length : 0;
                        return r ? ((n ? Zn(t, e, n) : null == e) && (e = 1), e = r - (+e || 0), Xe(t, 0, e < 0 ? 0 : e)) : []
                    }

                    function yr(t, e, n) {
                        return t && t.length ? en(t, Bn(e, n, 3), !0, !0) : []
                    }

                    function xr(t, e, n) {
                        return t && t.length ? en(t, Bn(e, n, 3), !0) : []
                    }

                    function _r(t, e, n, r) {
                        var i = t ? t.length : 0;
                        return i ? (n && "number" != typeof n && Zn(t, e, n) && (n = 0, r = i), Ae(t, e, n, r)) : []
                    }

                    function br(t) {
                        return t ? t[0] : N
                    }

                    function wr(t, e, n) {
                        var r = t ? t.length : 0;
                        return n && Zn(t, e, n) && (e = !1), r ? ke(t, e) : []
                    }

                    function Tr(t) {
                        var e = t ? t.length : 0;
                        return e ? ke(t, !0) : []
                    }

                    function Er(t, e, n) {
                        var r = t ? t.length : 0;
                        if (!r) return -1;
                        if ("number" == typeof n) n = n < 0 ? wa(r + n, 0) : n; else if (n) {
                            var o = rn(t, e);
                            return o < r && (e === e ? e === t[o] : t[o] !== t[o]) ? o : -1
                        }
                        return i(t, e, n || 0)
                    }

                    function Nr(t) {
                        return mr(t, 1)
                    }

                    function Ar(t) {
                        var e = t ? t.length : 0;
                        return e ? t[e - 1] : N
                    }

                    function Cr(t, e, n) {
                        var r = t ? t.length : 0;
                        if (!r) return -1;
                        var i = r;
                        if ("number" == typeof n) i = (n < 0 ? wa(r + n, 0) : Ta(n || 0, r - 1)) + 1; else if (n) {
                            i = rn(t, e, !0) - 1;
                            var o = t[i];
                            return (e === e ? e === o : o !== o) ? i : -1
                        }
                        if (e !== e) return g(t, i, !0);
                        for (; i--;) if (t[i] === e) return i;
                        return -1
                    }

                    function Sr() {
                        var t = arguments, e = t[0];
                        if (!e || !e.length) return e;
                        for (var n = 0, r = zn(), i = t.length; ++n < i;) for (var o = 0, a = t[n]; (o = r(e, a, o)) > -1;) ha.call(e, o, 1);
                        return e
                    }

                    function kr(t, e, n) {
                        var r = [];
                        if (!t || !t.length) return r;
                        var i = -1, o = [], a = t.length;
                        for (e = Bn(e, n, 3); ++i < a;) {
                            var s = t[i];
                            e(s, i, t) && (r.push(s), o.push(i))
                        }
                        return Ue(t, o), r
                    }

                    function $r(t) {
                        return gr(t, 1)
                    }

                    function jr(t, e, n) {
                        var r = t ? t.length : 0;
                        return r ? (n && "number" != typeof n && Zn(t, e, n) && (e = 0, n = r), Xe(t, e, n)) : []
                    }

                    function Or(t, e, n) {
                        var r = t ? t.length : 0;
                        return r ? ((n ? Zn(t, e, n) : null == e) && (e = 1), Xe(t, 0, e < 0 ? 0 : e)) : []
                    }

                    function Dr(t, e, n) {
                        var r = t ? t.length : 0;
                        return r ? ((n ? Zn(t, e, n) : null == e) && (e = 1), e = r - (+e || 0), Xe(t, e < 0 ? 0 : e)) : []
                    }

                    function Ir(t, e, n) {
                        return t && t.length ? en(t, Bn(e, n, 3), !1, !0) : []
                    }

                    function Mr(t, e, n) {
                        return t && t.length ? en(t, Bn(e, n, 3)) : []
                    }

                    function Rr(t, e, n, r) {
                        var o = t ? t.length : 0;
                        if (!o) return [];
                        null != e && "boolean" != typeof e && (r = n, n = Zn(t, e, r) ? N : e, e = !1);
                        var a = Bn();
                        return null == n && a === _e || (n = a(n, r, 3)), e && zn() == i ? _(t, n) : Ze(t, n)
                    }

                    function Lr(t) {
                        if (!t || !t.length) return [];
                        var e = -1, n = 0;
                        t = se(t, function (t) {
                            if (Kn(t)) return n = wa(t.length, n), !0
                        });
                        for (var r = Bo(n); ++e < n;) r[e] = ue(t, ze(e));
                        return r
                    }

                    function Pr(t, e, n) {
                        var r = t ? t.length : 0;
                        if (!r) return [];
                        var i = Lr(t);
                        return null == e ? i : (e = an(e, n, 4), ue(i, function (t) {
                            return le(t, e, N, !0)
                        }))
                    }

                    function Fr() {
                        for (var t = arguments, e = -1, n = arguments.length; ++e < n;) {
                            var r = t[e];
                            if (Kn(r)) var i = i ? ce(Te(i, r), Te(r, i)) : r
                        }
                        return i ? Ze(i) : []
                    }

                    function qr(t, e) {
                        var n = -1, r = t ? t.length : 0, i = {};
                        for (!r || e || ks(t[0]) || (e = []); ++n < r;) {
                            var o = t[n];
                            e ? i[o] = e[n] : o && (i[o[0]] = o[1])
                        }
                        return i
                    }

                    function Br(t) {
                        var n = e(t);
                        return n.__chain__ = !0, n
                    }

                    function Hr(t, e, n) {
                        return e.call(n, t), t
                    }

                    function zr(t, e, n) {
                        return e.call(n, t)
                    }

                    function Wr() {
                        return Br(this)
                    }

                    function Ur() {
                        return new y(this.value(), this.__chain__)
                    }

                    function Gr(t) {
                        for (var e, n = this; n instanceof o;) {
                            var r = hr(n);
                            e ? i.__wrapped__ = r : e = r;
                            var i = r;
                            n = n.__wrapped__
                        }
                        return i.__wrapped__ = t, e
                    }

                    function Jr() {
                        var t = this.__wrapped__, e = function (t) {
                            return n && n.__dir__ < 0 ? t : t.reverse()
                        };
                        if (t instanceof K) {
                            var n = t;
                            return this.__actions__.length && (n = new K(this)), n = n.reverse(), n.__actions__.push({
                                func: zr,
                                args: [e],
                                thisArg: N
                            }), new y(n, this.__chain__)
                        }
                        return this.thru(e)
                    }

                    function Xr() {
                        return this.value() + ""
                    }

                    function Vr() {
                        return nn(this.__wrapped__, this.__actions__)
                    }

                    function Yr(t, e, n) {
                        var r = ks(t) ? oe : Ee;
                        return n && Zn(t, e, n) && (e = N), "function" == typeof e && n === N || (e = Bn(e, n, 3)), r(t, e)
                    }

                    function Kr(t, e, n) {
                        var r = ks(t) ? se : Ce;
                        return e = Bn(e, n, 3), r(t, e)
                    }

                    function Qr(t, e) {
                        return is(t, Fe(e))
                    }

                    function Zr(t, e, n, r) {
                        var i = t ? Ha(t) : 0;
                        return nr(i) || (t = oo(t), i = t.length), n = "number" != typeof n || r && Zn(e, n, r) ? 0 : n < 0 ? wa(i + n, 0) : n || 0, "string" == typeof t || !ks(t) && Hi(t) ? n <= i && t.indexOf(e, n) > -1 : !!i && zn(t, e, n) > -1
                    }

                    function ti(t, e, n) {
                        var r = ks(t) ? ue : Pe;
                        return e = Bn(e, n, 3), r(t, e)
                    }

                    function ei(t, e) {
                        return ti(t, Io(e))
                    }

                    function ni(t, e, n) {
                        var r = ks(t) ? se : Ce;
                        return e = Bn(e, n, 3), r(t, function (t, n, r) {
                            return !e(t, n, r)
                        })
                    }

                    function ri(t, e, n) {
                        if (n ? Zn(t, e, n) : null == e) {
                            t = lr(t);
                            var r = t.length;
                            return r > 0 ? t[Ge(0, r - 1)] : N
                        }
                        var i = -1, o = Ji(t), r = o.length, a = r - 1;
                        for (e = Ta(e < 0 ? 0 : +e || 0, r); ++i < e;) {
                            var s = Ge(i, a), u = o[s];
                            o[s] = o[i], o[i] = u
                        }
                        return o.length = e, o
                    }

                    function ii(t) {
                        return ri(t, Sa)
                    }

                    function oi(t) {
                        var e = t ? Ha(t) : 0;
                        return nr(e) ? e : qs(t).length
                    }

                    function ai(t, e, n) {
                        var r = ks(t) ? pe : Ve;
                        return n && Zn(t, e, n) && (e = N), "function" == typeof e && n === N || (e = Bn(e, n, 3)), r(t, e)
                    }

                    function si(t, e, n) {
                        if (null == t) return [];
                        n && Zn(t, e, n) && (e = N);
                        var r = -1;
                        e = Bn(e, n, 3);
                        var i = Pe(t, function (t, n, i) {
                            return {criteria: e(t, n, i), index: ++r, value: t}
                        });
                        return Ye(i, l)
                    }

                    function ui(t, e, n, r) {
                        return null == t ? [] : (r && Zn(e, n, r) && (n = N), ks(e) || (e = null == e ? [] : [e]), ks(n) || (n = null == n ? [] : [n]), Ke(t, e, n))
                    }

                    function ci(t, e) {
                        return Kr(t, Fe(e))
                    }

                    function li(t, e) {
                        if ("function" != typeof e) {
                            if ("function" != typeof t) throw new Yo(z);
                            var n = t;
                            t = e, e = n
                        }
                        return t = _a(t = +t) ? t : 0, function () {
                            if (--t < 1) return e.apply(this, arguments)
                        }
                    }

                    function fi(t, e, n) {
                        return n && Zn(t, e, n) && (e = N), e = t && null == e ? t.length : wa(+e || 0, 0), Ln(t, I, N, N, N, N, e)
                    }

                    function pi(t, e) {
                        var n;
                        if ("function" != typeof e) {
                            if ("function" != typeof t) throw new Yo(z);
                            var r = t;
                            t = e, e = r
                        }
                        return function () {
                            return --t > 0 && (n = e.apply(this, arguments)), t <= 1 && (e = N), n
                        }
                    }

                    function hi(t, e, n) {
                        function r() {
                            h && sa(h), c && sa(c), v = 0, c = h = d = N
                        }

                        function i(e, n) {
                            n && sa(n), c = h = d = N, e && (v = vs(), l = t.apply(p, u), h || c || (u = p = N))
                        }

                        function o() {
                            var t = e - (vs() - f);
                            t <= 0 || t > e ? i(d, c) : h = pa(o, t)
                        }

                        function a() {
                            i(m, h)
                        }

                        function s() {
                            if (u = arguments, f = vs(), p = this, d = m && (h || !y), g === !1) var n = y && !h; else {
                                c || y || (v = f);
                                var r = g - (f - v), i = r <= 0 || r > g;
                                i ? (c && (c = sa(c)), v = f, l = t.apply(p, u)) : c || (c = pa(a, r))
                            }
                            return i && h ? h = sa(h) : h || e === g || (h = pa(o, e)), n && (i = !0, l = t.apply(p, u)), !i || h || c || (u = p = N), l
                        }

                        var u, c, l, f, p, h, d, v = 0, g = !1, m = !0;
                        if ("function" != typeof t) throw new Yo(z);
                        if (e = e < 0 ? 0 : +e || 0, n === !0) {
                            var y = !0;
                            m = !1
                        } else Ii(n) && (y = !!n.leading, g = "maxWait" in n && wa(+n.maxWait || 0, e), m = "trailing" in n ? !!n.trailing : m);
                        return s.cancel = r, s
                    }

                    function di(t, e) {
                        if ("function" != typeof t || e && "function" != typeof e) throw new Yo(z);
                        var n = function () {
                            var r = arguments, i = e ? e.apply(this, r) : r[0], o = n.cache;
                            if (o.has(i)) return o.get(i);
                            var a = t.apply(this, r);
                            return n.cache = o.set(i, a), a
                        };
                        return n.cache = new di.Cache, n
                    }

                    function vi(t) {
                        if ("function" != typeof t) throw new Yo(z);
                        return function () {
                            return !t.apply(this, arguments)
                        }
                    }

                    function gi(t) {
                        return pi(2, t)
                    }

                    function mi(t, e) {
                        if ("function" != typeof t) throw new Yo(z);
                        return e = wa(e === N ? t.length - 1 : +e || 0, 0), function () {
                            for (var n = arguments, r = -1, i = wa(n.length - e, 0), o = Bo(i); ++r < i;) o[r] = n[e + r];
                            switch (e) {
                                case 0:
                                    return t.call(this, o);
                                case 1:
                                    return t.call(this, n[0], o);
                                case 2:
                                    return t.call(this, n[0], n[1], o)
                            }
                            var a = Bo(e + 1);
                            for (r = -1; ++r < e;) a[r] = n[r];
                            return a[e] = o, t.apply(this, a)
                        }
                    }

                    function yi(t) {
                        if ("function" != typeof t) throw new Yo(z);
                        return function (e) {
                            return t.apply(this, e)
                        }
                    }

                    function xi(t, e, n) {
                        var r = !0, i = !0;
                        if ("function" != typeof t) throw new Yo(z);
                        return n === !1 ? r = !1 : Ii(n) && (r = "leading" in n ? !!n.leading : r, i = "trailing" in n ? !!n.trailing : i), hi(t, e, {
                            leading: r,
                            maxWait: +e,
                            trailing: i
                        })
                    }

                    function _i(t, e) {
                        return e = null == e ? So : e, Ln(e, O, N, [t], [])
                    }

                    function bi(t, e, n, r) {
                        return e && "boolean" != typeof e && Zn(t, e, n) ? e = !1 : "function" == typeof e && (r = n, n = e, e = !1), "function" == typeof n ? be(t, e, an(n, r, 1)) : be(t, e)
                    }

                    function wi(t, e, n) {
                        return "function" == typeof e ? be(t, !0, an(e, n, 1)) : be(t, !0)
                    }

                    function Ti(t, e) {
                        return t > e
                    }

                    function Ei(t, e) {
                        return t >= e
                    }

                    function Ni(t) {
                        return m(t) && Kn(t) && ea.call(t, "callee") && !la.call(t, "callee")
                    }

                    function Ai(t) {
                        return t === !0 || t === !1 || m(t) && ra.call(t) == J
                    }

                    function Ci(t) {
                        return m(t) && ra.call(t) == X
                    }

                    function Si(t) {
                        return !!t && 1 === t.nodeType && m(t) && !qi(t)
                    }

                    function ki(t) {
                        return null == t || (Kn(t) && (ks(t) || Hi(t) || Ni(t) || m(t) && Di(t.splice)) ? !t.length : !qs(t).length)
                    }

                    function $i(t, e, n, r) {
                        n = "function" == typeof n ? an(n, r, 3) : N;
                        var i = n ? n(t, e) : N;
                        return i === N ? Me(t, e, n) : !!i
                    }

                    function ji(t) {
                        return m(t) && "string" == typeof t.message && ra.call(t) == V
                    }

                    function Oi(t) {
                        return "number" == typeof t && _a(t)
                    }

                    function Di(t) {
                        return Ii(t) && ra.call(t) == Y
                    }

                    function Ii(t) {
                        var e = typeof t;
                        return !!t && ("object" == e || "function" == e)
                    }

                    function Mi(t, e, n, r) {
                        return n = "function" == typeof n ? an(n, r, 3) : N, Le(t, Wn(e), n)
                    }

                    function Ri(t) {
                        return Fi(t) && t != +t
                    }

                    function Li(t) {
                        return null != t && (Di(t) ? oa.test(ta.call(t)) : m(t) && It.test(t))
                    }

                    function Pi(t) {
                        return null === t
                    }

                    function Fi(t) {
                        return "number" == typeof t || m(t) && ra.call(t) == Q
                    }

                    function qi(t) {
                        var e;
                        if (!m(t) || ra.call(t) != Z || Ni(t) || !ea.call(t, "constructor") && (e = t.constructor, "function" == typeof e && !(e instanceof e))) return !1;
                        var n;
                        return $e(t, function (t, e) {
                            n = e
                        }), n === N || ea.call(t, n)
                    }

                    function Bi(t) {
                        return Ii(t) && ra.call(t) == tt
                    }

                    function Hi(t) {
                        return "string" == typeof t || m(t) && ra.call(t) == nt
                    }

                    function zi(t) {
                        return m(t) && nr(t.length) && !!Ht[ra.call(t)]
                    }

                    function Wi(t) {
                        return t === N
                    }

                    function Ui(t, e) {
                        return t < e
                    }

                    function Gi(t, e) {
                        return t <= e
                    }

                    function Ji(t) {
                        var e = t ? Ha(t) : 0;
                        return nr(e) ? e ? te(t) : [] : oo(t)
                    }

                    function Xi(t) {
                        return xe(t, to(t))
                    }

                    function Vi(t, e, n) {
                        var r = Ma(t);
                        return n && Zn(t, e, n) && (e = N), e ? me(r, e) : r
                    }

                    function Yi(t) {
                        return De(t, to(t))
                    }

                    function Ki(t, e, n) {
                        var r = null == t ? N : Ie(t, pr(e), e + "");
                        return r === N ? n : r
                    }

                    function Qi(t, e) {
                        if (null == t) return !1;
                        var n = ea.call(t, e);
                        if (!n && !tr(e)) {
                            if (e = pr(e), t = 1 == e.length ? t : Ie(t, Xe(e, 0, -1)), null == t) return !1;
                            e = Ar(e), n = ea.call(t, e)
                        }
                        return n || nr(t.length) && Qn(e, t.length) && (ks(t) || Ni(t))
                    }

                    function Zi(t, e, n) {
                        n && Zn(t, e, n) && (e = N);
                        for (var r = -1, i = qs(t), o = i.length, a = {}; ++r < o;) {
                            var s = i[r], u = t[s];
                            e ? ea.call(a, u) ? a[u].push(s) : a[u] = [s] : a[u] = s
                        }
                        return a
                    }

                    function to(t) {
                        if (null == t) return [];
                        Ii(t) || (t = Jo(t));
                        var e = t.length;
                        e = e && nr(e) && (ks(t) || Ni(t)) && e || 0;
                        for (var n = t.constructor, r = -1, i = "function" == typeof n && n.prototype === t, o = Bo(e), a = e > 0; ++r < e;) o[r] = r + "";
                        for (var s in t) a && Qn(s, e) || "constructor" == s && (i || !ea.call(t, s)) || o.push(s);
                        return o
                    }

                    function eo(t) {
                        t = fr(t);
                        for (var e = -1, n = qs(t), r = n.length, i = Bo(r); ++e < r;) {
                            var o = n[e];
                            i[e] = [o, t[o]]
                        }
                        return i
                    }

                    function no(t, e, n) {
                        var r = null == t ? N : t[e];
                        return r === N && (null == t || tr(e, t) || (e = pr(e), t = 1 == e.length ? t : Ie(t, Xe(e, 0, -1)), r = null == t ? N : t[Ar(e)]), r = r === N ? n : r), Di(r) ? r.call(t) : r
                    }

                    function ro(t, e, n) {
                        if (null == t) return t;
                        var r = e + "";
                        e = null != t[r] || tr(e, t) ? [r] : pr(e);
                        for (var i = -1, o = e.length, a = o - 1, s = t; null != s && ++i < o;) {
                            var u = e[i];
                            Ii(s) && (i == a ? s[u] = n : null == s[u] && (s[u] = Qn(e[i + 1]) ? [] : {})), s = s[u]
                        }
                        return t
                    }

                    function io(t, e, n, r) {
                        var i = ks(t) || zi(t);
                        if (e = Bn(e, r, 4), null == n) if (i || Ii(t)) {
                            var o = t.constructor;
                            n = i ? ks(t) ? new o : [] : Ma(Di(o) ? o.prototype : N)
                        } else n = {};
                        return (i ? ee : je)(t, function (t, r, i) {
                            return e(n, t, r, i)
                        }), n
                    }

                    function oo(t) {
                        return tn(t, qs(t))
                    }

                    function ao(t) {
                        return tn(t, to(t))
                    }

                    function so(t, e, n) {
                        return e = +e || 0, n === N ? (n = e, e = 0) : n = +n || 0, t >= Ta(e, n) && t < wa(e, n)
                    }

                    function uo(t, e, n) {
                        n && Zn(t, e, n) && (e = n = N);
                        var r = null == t, i = null == e;
                        if (null == n && (i && "boolean" == typeof t ? (n = t, t = 1) : "boolean" == typeof e && (n = e, i = !0)), r && i && (e = 1, i = !1), t = +t || 0, i ? (e = t, t = 0) : e = +e || 0, n || t % 1 || e % 1) {
                            var o = Aa();
                            return Ta(t + o * (e - t + ua("1e-" + ((o + "").length - 1))), e)
                        }
                        return Ge(t, e)
                    }

                    function co(t) {
                        return t = s(t), t && t.charAt(0).toUpperCase() + t.slice(1)
                    }

                    function lo(t) {
                        return t = s(t), t && t.replace(Rt, p).replace(kt, "")
                    }

                    function fo(t, e, n) {
                        t = s(t), e += "";
                        var r = t.length;
                        return n = n === N ? r : Ta(n < 0 ? 0 : +n || 0, r), n -= e.length, n >= 0 && t.indexOf(e, n) == n
                    }

                    function po(t) {
                        return t = s(t), t && _t.test(t) ? t.replace(yt, h) : t
                    }

                    function ho(t) {
                        return t = s(t), t && St.test(t) ? t.replace(Ct, d) : t || "(?:)"
                    }

                    function vo(t, e, n) {
                        t = s(t), e = +e;
                        var r = t.length;
                        if (r >= e || !_a(e)) return t;
                        var i = (e - r) / 2, o = ya(i), a = ga(i);
                        return n = Dn("", a, n), n.slice(0, o) + t + n
                    }

                    function go(t, e, n) {
                        return (n ? Zn(t, e, n) : null == e) ? e = 0 : e && (e = +e), t = _o(t), Na(t, e || (Dt.test(t) ? 16 : 10))
                    }

                    function mo(t, e) {
                        var n = "";
                        if (t = s(t), e = +e, e < 1 || !t || !_a(e)) return n;
                        do e % 2 && (n += t), e = ya(e / 2), t += t; while (e);
                        return n
                    }

                    function yo(t, e, n) {
                        return t = s(t), n = null == n ? 0 : Ta(n < 0 ? 0 : +n || 0, t.length), t.lastIndexOf(e, n) == n
                    }

                    function xo(t, n, r) {
                        var i = e.templateSettings;
                        r && Zn(t, n, r) && (n = r = N), t = s(t), n = ge(me({}, r || n), i, ve);
                        var o, a, u = ge(me({}, n.imports), i.imports, ve), c = qs(u), l = tn(u, c), f = 0,
                            p = n.interpolate || Lt, h = "__p += '",
                            d = Xo((n.escape || Lt).source + "|" + p.source + "|" + (p === Tt ? jt : Lt).source + "|" + (n.evaluate || Lt).source + "|$", "g"),
                            g = "//# sourceURL=" + ("sourceURL" in n ? n.sourceURL : "lodash.templateSources[" + ++Bt + "]") + "\n";
                        t.replace(d, function (e, n, r, i, s, u) {
                            return r || (r = i), h += t.slice(f, u).replace(Pt, v), n && (o = !0, h += "' +\n__e(" + n + ") +\n'"), s && (a = !0, h += "';\n" + s + ";\n__p += '"), r && (h += "' +\n((__t = (" + r + ")) == null ? '' : __t) +\n'"), f = u + e.length, e
                        }), h += "';\n";
                        var m = n.variable;
                        m || (h = "with (obj) {\n" + h + "\n}\n"), h = (a ? h.replace(dt, "") : h).replace(vt, "$1").replace(gt, "$1;"), h = "function(" + (m || "obj") + ") {\n" + (m ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (o ? ", __e = _.escape" : "") + (a ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + h + "return __p\n}";
                        var y = Ks(function () {
                            return Wo(c, g + "return " + h).apply(N, l)
                        });
                        if (y.source = h, ji(y)) throw y;
                        return y
                    }

                    function _o(t, e, n) {
                        var r = t;
                        return (t = s(t)) ? (n ? Zn(r, e, n) : null == e) ? t.slice(b(t), w(t) + 1) : (e += "", t.slice(u(t, e), c(t, e) + 1)) : t
                    }

                    function bo(t, e, n) {
                        var r = t;
                        return t = s(t), t ? (n ? Zn(r, e, n) : null == e) ? t.slice(b(t)) : t.slice(u(t, e + "")) : t
                    }

                    function wo(t, e, n) {
                        var r = t;
                        return t = s(t), t ? (n ? Zn(r, e, n) : null == e) ? t.slice(0, w(t) + 1) : t.slice(0, c(t, e + "") + 1) : t
                    }

                    function To(t, e, n) {
                        n && Zn(t, e, n) && (e = N);
                        var r = R, i = L;
                        if (null != e) if (Ii(e)) {
                            var o = "separator" in e ? e.separator : o;
                            r = "length" in e ? +e.length || 0 : r, i = "omission" in e ? s(e.omission) : i
                        } else r = +e || 0;
                        if (t = s(t), r >= t.length) return t;
                        var a = r - i.length;
                        if (a < 1) return i;
                        var u = t.slice(0, a);
                        if (null == o) return u + i;
                        if (Bi(o)) {
                            if (t.slice(a).search(o)) {
                                var c, l, f = t.slice(0, a);
                                for (o.global || (o = Xo(o.source, (Ot.exec(o) || "") + "g")), o.lastIndex = 0; c = o.exec(f);) l = c.index;
                                u = u.slice(0, null == l ? a : l)
                            }
                        } else if (t.indexOf(o, a) != a) {
                            var p = u.lastIndexOf(o);
                            p > -1 && (u = u.slice(0, p))
                        }
                        return u + i
                    }

                    function Eo(t) {
                        return t = s(t), t && xt.test(t) ? t.replace(mt, T) : t
                    }

                    function No(t, e, n) {
                        return n && Zn(t, e, n) && (e = N), t = s(t), t.match(e || Ft) || []
                    }

                    function Ao(t, e, n) {
                        return n && Zn(t, e, n) && (e = N), m(t) ? ko(t) : _e(t, e)
                    }

                    function Co(t) {
                        return function () {
                            return t
                        }
                    }

                    function So(t) {
                        return t
                    }

                    function ko(t) {
                        return Fe(be(t, !0))
                    }

                    function $o(t, e) {
                        return qe(t, be(e, !0))
                    }

                    function jo(t, e, n) {
                        if (null == n) {
                            var r = Ii(e), i = r ? qs(e) : N, o = i && i.length ? De(e, i) : N;
                            (o ? o.length : r) || (o = !1, n = e, e = t, t = this)
                        }
                        o || (o = De(e, qs(e)));
                        var a = !0, s = -1, u = Di(t), c = o.length;
                        n === !1 ? a = !1 : Ii(n) && "chain" in n && (a = n.chain);
                        for (; ++s < c;) {
                            var l = o[s], f = e[l];
                            t[l] = f, u && (t.prototype[l] = function (e) {
                                return function () {
                                    var n = this.__chain__;
                                    if (a || n) {
                                        var r = t(this.__wrapped__), i = r.__actions__ = te(this.__actions__);
                                        return i.push({func: e, args: arguments, thisArg: t}), r.__chain__ = n, r
                                    }
                                    return e.apply(t, ce([this.value()], arguments))
                                }
                            }(f))
                        }
                        return t
                    }

                    function Oo() {
                        return ne._ = ia, this
                    }

                    function Do() {
                    }

                    function Io(t) {
                        return tr(t) ? ze(t) : We(t)
                    }

                    function Mo(t) {
                        return function (e) {
                            return Ie(t, pr(e), e + "")
                        }
                    }

                    function Ro(t, e, n) {
                        n && Zn(t, e, n) && (e = n = N), t = +t || 0, n = null == n ? 1 : +n || 0, null == e ? (e = t, t = 0) : e = +e || 0;
                        for (var r = -1, i = wa(ga((e - t) / (n || 1)), 0), o = Bo(i); ++r < i;) o[r] = t, t += n;
                        return o
                    }

                    function Lo(t, e, n) {
                        if (t = ya(t), t < 1 || !_a(t)) return [];
                        var r = -1, i = Bo(Ta(t, ka));
                        for (e = an(e, n, 1); ++r < t;) r < ka ? i[r] = e(r) : e(r);
                        return i
                    }

                    function Po(t) {
                        var e = ++na;
                        return s(t) + e
                    }

                    function Fo(t, e) {
                        return (+t || 0) + (+e || 0)
                    }

                    function qo(t, e, n) {
                        return n && Zn(t, e, n) && (e = N), e = Bn(e, n, 3), 1 == e.length ? he(ks(t) ? t : lr(t), e) : Qe(t, e)
                    }

                    t = t ? re.defaults(ne.Object(), t, re.pick(ne, qt)) : ne;
                    var Bo = t.Array, Ho = t.Date, zo = t.Error, Wo = t.Function, Uo = t.Math, Go = t.Number,
                        Jo = t.Object, Xo = t.RegExp, Vo = t.String, Yo = t.TypeError, Ko = Bo.prototype,
                        Qo = Jo.prototype, Zo = Vo.prototype, ta = Wo.prototype.toString, ea = Qo.hasOwnProperty,
                        na = 0, ra = Qo.toString, ia = ne._,
                        oa = Xo("^" + ta.call(ea).replace(/[\\^$.*+?()[\]{}|]/g, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"),
                        aa = t.ArrayBuffer, sa = t.clearTimeout, ua = t.parseFloat, ca = Uo.pow,
                        la = Qo.propertyIsEnumerable, fa = Un(t, "Set"), pa = t.setTimeout, ha = Ko.splice,
                        da = t.Uint8Array, va = Un(t, "WeakMap"), ga = Uo.ceil, ma = Un(Jo, "create"), ya = Uo.floor,
                        xa = Un(Bo, "isArray"), _a = t.isFinite, ba = Un(Jo, "keys"), wa = Uo.max, Ta = Uo.min,
                        Ea = Un(Ho, "now"), Na = t.parseInt, Aa = Uo.random, Ca = Go.NEGATIVE_INFINITY,
                        Sa = Go.POSITIVE_INFINITY, ka = 4294967295, $a = ka - 1, ja = ka >>> 1, Oa = 9007199254740991,
                        Da = va && new va, Ia = {};
                    e.support = {};
                    e.templateSettings = {escape: bt, evaluate: wt, interpolate: Tt, variable: "", imports: {_: e}};
                    var Ma = function () {
                            function t() {
                            }

                            return function (e) {
                                if (Ii(e)) {
                                    t.prototype = e;
                                    var n = new t;
                                    t.prototype = N
                                }
                                return n || {}
                            }
                        }(), Ra = pn(je), La = pn(Oe, !0), Pa = hn(), Fa = hn(!0), qa = Da ? function (t, e) {
                            return Da.set(t, e), t
                        } : So, Ba = Da ? function (t) {
                            return Da.get(t)
                        } : Do, Ha = ze("length"), za = function () {
                            var t = 0, e = 0;
                            return function (n, r) {
                                var i = vs(), o = F - (i - e);
                                if (e = i, o > 0) {
                                    if (++t >= P) return n
                                } else t = 0;
                                return qa(n, r)
                            }
                        }(), Wa = mi(function (t, e) {
                            return m(t) && Kn(t) ? Te(t, ke(e, !1, !0)) : []
                        }), Ua = wn(), Ga = wn(!0), Ja = mi(function (t) {
                            for (var e = t.length, n = e, r = Bo(f), o = zn(), a = o == i, s = []; n--;) {
                                var u = t[n] = Kn(u = t[n]) ? u : [];
                                r[n] = a && u.length >= 120 ? vn(n && u) : null
                            }
                            var c = t[0], l = -1, f = c ? c.length : 0, p = r[0];
                            t:for (; ++l < f;) if (u = c[l], (p ? Kt(p, u) : o(s, u, 0)) < 0) {
                                for (var n = e; --n;) {
                                    var h = r[n];
                                    if ((h ? Kt(h, u) : o(t[n], u, 0)) < 0) continue t
                                }
                                p && p.push(u), s.push(u)
                            }
                            return s
                        }), Xa = mi(function (t, e) {
                            e = ke(e);
                            var r = ye(t, e);
                            return Ue(t, e.sort(n)), r
                        }), Va = Rn(), Ya = Rn(!0), Ka = mi(function (t) {
                            return Ze(ke(t, !1, !0))
                        }), Qa = mi(function (t, e) {
                            return Kn(t) ? Te(t, e) : []
                        }), Za = mi(Lr), ts = mi(function (t) {
                            var e = t.length, n = e > 2 ? t[e - 2] : N, r = e > 1 ? t[e - 1] : N;
                            return e > 2 && "function" == typeof n ? e -= 2 : (n = e > 1 && "function" == typeof r ? (--e, r) : N, r = N), t.length = e, Pr(t, n, r)
                        }), es = mi(function (t) {
                            return t = ke(t), this.thru(function (e) {
                                return Zt(ks(e) ? e : [fr(e)], t)
                            })
                        }), ns = mi(function (t, e) {
                            return ye(t, ke(e))
                        }), rs = ln(function (t, e, n) {
                            ea.call(t, n) ? ++t[n] : t[n] = 1
                        }), is = bn(Ra), os = bn(La, !0), as = Nn(ee, Ra), ss = Nn(ie, La), us = ln(function (t, e, n) {
                            ea.call(t, n) ? t[n].push(e) : t[n] = [e]
                        }), cs = ln(function (t, e, n) {
                            t[n] = e
                        }), ls = mi(function (t, e, n) {
                            var r = -1, i = "function" == typeof e, o = tr(e), a = Kn(t) ? Bo(t.length) : [];
                            return Ra(t, function (t) {
                                var s = i ? e : o && null != t ? t[e] : N;
                                a[++r] = s ? s.apply(t, n) : Yn(t, e, n)
                            }), a
                        }), fs = ln(function (t, e, n) {
                            t[n ? 0 : 1].push(e)
                        }, function () {
                            return [[], []]
                        }), ps = jn(le, Ra), hs = jn(fe, La), ds = mi(function (t, e) {
                            if (null == t) return [];
                            var n = e[2];
                            return n && Zn(e[0], e[1], n) && (e.length = 1), Ke(t, ke(e), [])
                        }), vs = Ea || function () {
                            return (new Ho).getTime()
                        }, gs = mi(function (t, e, n) {
                            var r = C;
                            if (n.length) {
                                var i = x(n, gs.placeholder);
                                r |= O
                            }
                            return Ln(t, r, e, n, i)
                        }), ms = mi(function (t, e) {
                            e = e.length ? ke(e) : Yi(t);
                            for (var n = -1, r = e.length; ++n < r;) {
                                var i = e[n];
                                t[i] = Ln(t[i], C, t)
                            }
                            return t
                        }), ys = mi(function (t, e, n) {
                            var r = C | S;
                            if (n.length) {
                                var i = x(n, ys.placeholder);
                                r |= O
                            }
                            return Ln(e, r, t, n, i)
                        }), xs = yn($), _s = yn(j), bs = mi(function (t, e) {
                            return we(t, 1, e)
                        }), ws = mi(function (t, e, n) {
                            return we(t, e, n)
                        }), Ts = En(), Es = En(!0), Ns = mi(function (t, e) {
                            if (e = ke(e), "function" != typeof t || !oe(e, a)) throw new Yo(z);
                            var n = e.length;
                            return mi(function (r) {
                                for (var i = Ta(r.length, n); i--;) r[i] = e[i](r[i]);
                                return t.apply(this, r)
                            })
                        }), As = $n(O), Cs = $n(D), Ss = mi(function (t, e) {
                            return Ln(t, M, N, N, N, ke(e))
                        }), ks = xa || function (t) {
                            return m(t) && nr(t.length) && ra.call(t) == G
                        }, $s = fn(Be), js = fn(function (t, e, n) {
                            return n ? ge(t, e, n) : me(t, e)
                        }), Os = xn(js, de), Ds = xn($s, or), Is = Tn(je), Ms = Tn(Oe), Rs = An(Pa), Ls = An(Fa),
                        Ps = Cn(je), Fs = Cn(Oe), qs = ba ? function (t) {
                            var e = null == t ? N : t.constructor;
                            return "function" == typeof e && e.prototype === t || "function" != typeof t && Kn(t) ? cr(t) : Ii(t) ? ba(t) : []
                        } : cr, Bs = Sn(!0), Hs = Sn(), zs = mi(function (t, e) {
                            if (null == t) return {};
                            if ("function" != typeof e[0]) {
                                var e = ue(ke(e), Vo);
                                return ar(t, Te(to(t), e))
                            }
                            var n = an(e[0], e[1], 3);
                            return sr(t, function (t, e, r) {
                                return !n(t, e, r)
                            })
                        }), Ws = mi(function (t, e) {
                            return null == t ? {} : "function" == typeof e[0] ? sr(t, an(e[0], e[1], 3)) : ar(t, ke(e))
                        }), Us = gn(function (t, e, n) {
                            return e = e.toLowerCase(), t + (n ? e.charAt(0).toUpperCase() + e.slice(1) : e)
                        }), Gs = gn(function (t, e, n) {
                            return t + (n ? "-" : "") + e.toLowerCase()
                        }), Js = kn(), Xs = kn(!0), Vs = gn(function (t, e, n) {
                            return t + (n ? "_" : "") + e.toLowerCase()
                        }), Ys = gn(function (t, e, n) {
                            return t + (n ? " " : "") + (e.charAt(0).toUpperCase() + e.slice(1))
                        }), Ks = mi(function (t, e) {
                            try {
                                return t.apply(N, e)
                            } catch (n) {
                                return ji(n) ? n : new zo(n)
                            }
                        }), Qs = mi(function (t, e) {
                            return function (n) {
                                return Yn(n, t, e)
                            }
                        }), Zs = mi(function (t, e) {
                            return function (n) {
                                return Yn(t, n, e)
                            }
                        }), tu = Mn("ceil"), eu = Mn("floor"), nu = _n(Ti, Ca), ru = _n(Ui, Sa), iu = Mn("round");
                    return e.prototype = o.prototype, y.prototype = Ma(o.prototype), y.prototype.constructor = y, K.prototype = Ma(o.prototype), K.prototype.constructor = K, Ut.prototype["delete"] = Gt, Ut.prototype.get = Jt, Ut.prototype.has = Xt, Ut.prototype.set = Vt, Yt.prototype.push = Qt, di.Cache = Ut, e.after = li, e.ary = fi, e.assign = js, e.at = ns, e.before = pi, e.bind = gs, e.bindAll = ms, e.bindKey = ys, e.callback = Ao, e.chain = Br, e.chunk = dr, e.compact = vr, e.constant = Co, e.countBy = rs, e.create = Vi, e.curry = xs, e.curryRight = _s, e.debounce = hi, e.defaults = Os, e.defaultsDeep = Ds, e.defer = bs, e.delay = ws, e.difference = Wa, e.drop = gr, e.dropRight = mr, e.dropRightWhile = yr, e.dropWhile = xr, e.fill = _r, e.filter = Kr, e.flatten = wr, e.flattenDeep = Tr, e.flow = Ts, e.flowRight = Es, e.forEach = as, e.forEachRight = ss, e.forIn = Rs, e.forInRight = Ls, e.forOwn = Ps, e.forOwnRight = Fs, e.functions = Yi, e.groupBy = us, e.indexBy = cs, e.initial = Nr, e.intersection = Ja, e.invert = Zi, e.invoke = ls, e.keys = qs, e.keysIn = to, e.map = ti, e.mapKeys = Bs, e.mapValues = Hs, e.matches = ko, e.matchesProperty = $o, e.memoize = di, e.merge = $s, e.method = Qs, e.methodOf = Zs, e.mixin = jo, e.modArgs = Ns, e.negate = vi, e.omit = zs, e.once = gi, e.pairs = eo, e.partial = As, e.partialRight = Cs, e.partition = fs, e.pick = Ws, e.pluck = ei, e.property = Io, e.propertyOf = Mo, e.pull = Sr, e.pullAt = Xa, e.range = Ro, e.rearg = Ss, e.reject = ni, e.remove = kr, e.rest = $r, e.restParam = mi, e.set = ro, e.shuffle = ii, e.slice = jr, e.sortBy = si, e.sortByAll = ds, e.sortByOrder = ui, e.spread = yi, e.take = Or, e.takeRight = Dr, e.takeRightWhile = Ir, e.takeWhile = Mr, e.tap = Hr,e.throttle = xi,e.thru = zr,e.times = Lo,e.toArray = Ji,e.toPlainObject = Xi,e.transform = io,e.union = Ka,e.uniq = Rr,e.unzip = Lr,e.unzipWith = Pr,e.values = oo,e.valuesIn = ao,e.where = ci,e.without = Qa,e.wrap = _i,e.xor = Fr,e.zip = Za,e.zipObject = qr,e.zipWith = ts,e.backflow = Es,e.collect = ti,e.compose = Es,e.each = as,e.eachRight = ss,e.extend = js,e.iteratee = Ao,e.methods = Yi,e.object = qr,e.select = Kr,e.tail = $r,e.unique = Rr,jo(e, e),e.add = Fo,e.attempt = Ks,e.camelCase = Us,e.capitalize = co,e.ceil = tu,e.clone = bi,e.cloneDeep = wi,e.deburr = lo,e.endsWith = fo,e.escape = po,e.escapeRegExp = ho,e.every = Yr,e.find = is,e.findIndex = Ua,e.findKey = Is,e.findLast = os,e.findLastIndex = Ga,e.findLastKey = Ms,e.findWhere = Qr,e.first = br,e.floor = eu,e.get = Ki,e.gt = Ti,e.gte = Ei,e.has = Qi,e.identity = So,e.includes = Zr,e.indexOf = Er,e.inRange = so,e.isArguments = Ni,e.isArray = ks,e.isBoolean = Ai,e.isDate = Ci,e.isElement = Si,e.isEmpty = ki,e.isEqual = $i,e.isError = ji,e.isFinite = Oi,e.isFunction = Di,e.isMatch = Mi,e.isNaN = Ri,e.isNative = Li,e.isNull = Pi,e.isNumber = Fi,e.isObject = Ii,e.isPlainObject = qi,e.isRegExp = Bi,e.isString = Hi,e.isTypedArray = zi,e.isUndefined = Wi,e.kebabCase = Gs,e.last = Ar,e.lastIndexOf = Cr,e.lt = Ui,e.lte = Gi,e.max = nu,e.min = ru,e.noConflict = Oo,e.noop = Do,e.now = vs,e.pad = vo,e.padLeft = Js,e.padRight = Xs,e.parseInt = go,e.random = uo,e.reduce = ps,e.reduceRight = hs,e.repeat = mo,e.result = no,e.round = iu,e.runInContext = E,e.size = oi,e.snakeCase = Vs,e.some = ai,e.sortedIndex = Va,e.sortedLastIndex = Ya,e.startCase = Ys,e.startsWith = yo,e.sum = qo,e.template = xo,e.trim = _o,e.trimLeft = bo,e.trimRight = wo,e.trunc = To,e.unescape = Eo,e.uniqueId = Po,e.words = No,e.all = Yr,e.any = ai,e.contains = Zr,e.eq = $i,e.detect = is,e.foldl = ps,e.foldr = hs,e.head = br,e.include = Zr,e.inject = ps,jo(e, function () {
                        var t = {};
                        return je(e, function (n, r) {
                            e.prototype[r] || (t[r] = n)
                        }), t
                    }(), !1),e.sample = ri,e.prototype.sample = function (t) {
                        return this.__chain__ || null != t ? this.thru(function (e) {
                            return ri(e, t)
                        }) : ri(this.value())
                    },e.VERSION = A,ee(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function (t) {
                        e[t].placeholder = e
                    }),ee(["drop", "take"], function (t, e) {
                        K.prototype[t] = function (n) {
                            var r = this.__filtered__;
                            if (r && !e) return new K(this);
                            n = null == n ? 1 : wa(ya(n) || 0, 0);
                            var i = this.clone();
                            return r ? i.__takeCount__ = Ta(i.__takeCount__, n) : i.__views__.push({
                                size: n,
                                type: t + (i.__dir__ < 0 ? "Right" : "")
                            }), i
                        }, K.prototype[t + "Right"] = function (e) {
                            return this.reverse()[t](e).reverse()
                        }
                    }),ee(["filter", "map", "takeWhile"], function (t, e) {
                        var n = e + 1, r = n != H;
                        K.prototype[t] = function (t, e) {
                            var i = this.clone();
                            return i.__iteratees__.push({
                                iteratee: Bn(t, e, 1),
                                type: n
                            }), i.__filtered__ = i.__filtered__ || r, i
                        }
                    }),ee(["first", "last"], function (t, e) {
                        var n = "take" + (e ? "Right" : "");
                        K.prototype[t] = function () {
                            return this[n](1).value()[0]
                        }
                    }),ee(["initial", "rest"], function (t, e) {
                        var n = "drop" + (e ? "" : "Right");
                        K.prototype[t] = function () {
                            return this.__filtered__ ? new K(this) : this[n](1)
                        }
                    }),ee(["pluck", "where"], function (t, e) {
                        var n = e ? "filter" : "map", r = e ? Fe : Io;
                        K.prototype[t] = function (t) {
                            return this[n](r(t))
                        }
                    }),K.prototype.compact = function () {
                        return this.filter(So)
                    },K.prototype.reject = function (t, e) {
                        return t = Bn(t, e, 1), this.filter(function (e) {
                            return !t(e)
                        })
                    },K.prototype.slice = function (t, e) {
                        t = null == t ? 0 : +t || 0;
                        var n = this;
                        return n.__filtered__ && (t > 0 || e < 0) ? new K(n) : (t < 0 ? n = n.takeRight(-t) : t && (n = n.drop(t)), e !== N && (e = +e || 0, n = e < 0 ? n.dropRight(-e) : n.take(e - t)), n)
                    },K.prototype.takeRightWhile = function (t, e) {
                        return this.reverse().takeWhile(t, e).reverse()
                    },K.prototype.toArray = function () {
                        return this.take(Sa)
                    },je(K.prototype, function (t, n) {
                        var r = /^(?:filter|map|reject)|While$/.test(n), i = /^(?:first|last)$/.test(n),
                            o = e[i ? "take" + ("last" == n ? "Right" : "") : n];
                        o && (e.prototype[n] = function () {
                            var e = i ? [1] : arguments, n = this.__chain__, a = this.__wrapped__,
                                s = !!this.__actions__.length, u = a instanceof K, c = e[0], l = u || ks(a);
                            l && r && "function" == typeof c && 1 != c.length && (u = l = !1);
                            var f = function (t) {
                                return i && n ? o(t, 1)[0] : o.apply(N, ce([t], e))
                            }, p = {func: zr, args: [f], thisArg: N}, h = u && !s;
                            if (i && !n) return h ? (a = a.clone(), a.__actions__.push(p), t.call(a)) : o.call(N, this.value())[0];
                            if (!i && l) {
                                a = h ? a : new K(this);
                                var d = t.apply(a, e);
                                return d.__actions__.push(p), new y(d, n)
                            }
                            return this.thru(f)
                        })
                    }),ee(["join", "pop", "push", "replace", "shift", "sort", "splice", "split", "unshift"], function (t) {
                        var n = (/^(?:replace|split)$/.test(t) ? Zo : Ko)[t],
                            r = /^(?:push|sort|unshift)$/.test(t) ? "tap" : "thru",
                            i = /^(?:join|pop|replace|shift)$/.test(t);
                        e.prototype[t] = function () {
                            var t = arguments;
                            return i && !this.__chain__ ? n.apply(this.value(), t) : this[r](function (e) {
                                return n.apply(e, t)
                            })
                        }
                    }),je(K.prototype, function (t, n) {
                        var r = e[n];
                        if (r) {
                            var i = r.name, o = Ia[i] || (Ia[i] = []);
                            o.push({name: n, func: r})
                        }
                    }),Ia[On(N, S).name] = [{
                        name: "wrapper",
                        func: N
                    }],K.prototype.clone = et,K.prototype.reverse = rt,K.prototype.value = Wt,e.prototype.chain = Wr,e.prototype.commit = Ur,e.prototype.concat = es,e.prototype.plant = Gr,e.prototype.reverse = Jr,e.prototype.toString = Xr,e.prototype.run = e.prototype.toJSON = e.prototype.valueOf = e.prototype.value = Vr,e.prototype.collect = e.prototype.map,e.prototype.head = e.prototype.first,e.prototype.select = e.prototype.filter,e.prototype.tail = e.prototype.rest,e
                }

                var N, A = "3.10.1", C = 1, S = 2, k = 4, $ = 8, j = 16, O = 32, D = 64, I = 128, M = 256, R = 30,
                    L = "...", P = 150, F = 16, q = 200, B = 1, H = 2, z = "Expected a function",
                    W = "__lodash_placeholder__", U = "[object Arguments]", G = "[object Array]",
                    J = "[object Boolean]", X = "[object Date]", V = "[object Error]", Y = "[object Function]",
                    K = "[object Map]", Q = "[object Number]", Z = "[object Object]", tt = "[object RegExp]",
                    et = "[object Set]", nt = "[object String]", rt = "[object WeakMap]", it = "[object ArrayBuffer]",
                    ot = "[object Float32Array]", at = "[object Float64Array]", st = "[object Int8Array]",
                    ut = "[object Int16Array]", ct = "[object Int32Array]", lt = "[object Uint8Array]",
                    ft = "[object Uint8ClampedArray]", pt = "[object Uint16Array]", ht = "[object Uint32Array]",
                    dt = /\b__p \+= '';/g, vt = /\b(__p \+=) '' \+/g, gt = /(__e\(.*?\)|\b__t\)) \+\n'';/g,
                    mt = /&(?:amp|lt|gt|quot|#39|#96);/g, yt = /[&<>"'`]/g, xt = RegExp(mt.source),
                    _t = RegExp(yt.source), bt = /<%-([\s\S]+?)%>/g, wt = /<%([\s\S]+?)%>/g, Tt = /<%=([\s\S]+?)%>/g,
                    Et = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/, Nt = /^\w*$/,
                    At = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,
                    Ct = /^[:!,]|[\\^$.*+?()[\]{}|\/]|(^[0-9a-fA-Fnrtuvx])|([\n\r\u2028\u2029])/g,
                    St = RegExp(Ct.source), kt = /[\u0300-\u036f\ufe20-\ufe23]/g, $t = /\\(\\)?/g,
                    jt = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g, Ot = /\w*$/, Dt = /^0[xX]/,
                    It = /^\[object .+?Constructor\]$/, Mt = /^\d+$/, Rt = /[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,
                    Lt = /($^)/, Pt = /['\n\r\u2028\u2029\\]/g, Ft = function () {
                        var t = "[A-Z\\xc0-\\xd6\\xd8-\\xde]", e = "[a-z\\xdf-\\xf6\\xf8-\\xff]+";
                        return RegExp(t + "+(?=" + t + e + ")|" + t + "?" + e + "|" + t + "+|[0-9]+", "g")
                    }(),
                    qt = ["Array", "ArrayBuffer", "Date", "Error", "Float32Array", "Float64Array", "Function", "Int8Array", "Int16Array", "Int32Array", "Math", "Number", "Object", "RegExp", "Set", "String", "_", "clearTimeout", "isFinite", "parseFloat", "parseInt", "setTimeout", "TypeError", "Uint8Array", "Uint8ClampedArray", "Uint16Array", "Uint32Array", "WeakMap"],
                    Bt = -1, Ht = {};
                Ht[ot] = Ht[at] = Ht[st] = Ht[ut] = Ht[ct] = Ht[lt] = Ht[ft] = Ht[pt] = Ht[ht] = !0, Ht[U] = Ht[G] = Ht[it] = Ht[J] = Ht[X] = Ht[V] = Ht[Y] = Ht[K] = Ht[Q] = Ht[Z] = Ht[tt] = Ht[et] = Ht[nt] = Ht[rt] = !1;
                var zt = {};
                zt[U] = zt[G] = zt[it] = zt[J] = zt[X] = zt[ot] = zt[at] = zt[st] = zt[ut] = zt[ct] = zt[Q] = zt[Z] = zt[tt] = zt[nt] = zt[lt] = zt[ft] = zt[pt] = zt[ht] = !0, zt[V] = zt[Y] = zt[K] = zt[et] = zt[rt] = !1;
                var Wt = {
                        "À": "A",
                        "Á": "A",
                        "Â": "A",
                        "Ã": "A",
                        "Ä": "A",
                        "Å": "A",
                        "à": "a",
                        "á": "a",
                        "â": "a",
                        "ã": "a",
                        "ä": "a",
                        "å": "a",
                        "Ç": "C",
                        "ç": "c",
                        "Ð": "D",
                        "ð": "d",
                        "È": "E",
                        "É": "E",
                        "Ê": "E",
                        "Ë": "E",
                        "è": "e",
                        "é": "e",
                        "ê": "e",
                        "ë": "e",
                        "Ì": "I",
                        "Í": "I",
                        "Î": "I",
                        "Ï": "I",
                        "ì": "i",
                        "í": "i",
                        "î": "i",
                        "ï": "i",
                        "Ñ": "N",
                        "ñ": "n",
                        "Ò": "O",
                        "Ó": "O",
                        "Ô": "O",
                        "Õ": "O",
                        "Ö": "O",
                        "Ø": "O",
                        "ò": "o",
                        "ó": "o",
                        "ô": "o",
                        "õ": "o",
                        "ö": "o",
                        "ø": "o",
                        "Ù": "U",
                        "Ú": "U",
                        "Û": "U",
                        "Ü": "U",
                        "ù": "u",
                        "ú": "u",
                        "û": "u",
                        "ü": "u",
                        "Ý": "Y",
                        "ý": "y",
                        "ÿ": "y",
                        "Æ": "Ae",
                        "æ": "ae",
                        "Þ": "Th",
                        "þ": "th",
                        "ß": "ss"
                    }, Ut = {"&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;", "`": "&#96;"},
                    Gt = {"&amp;": "&", "&lt;": "<", "&gt;": ">", "&quot;": '"', "&#39;": "'", "&#96;": "`"},
                    Jt = {"function": !0, object: !0}, Xt = {
                        0: "x30",
                        1: "x31",
                        2: "x32",
                        3: "x33",
                        4: "x34",
                        5: "x35",
                        6: "x36",
                        7: "x37",
                        8: "x38",
                        9: "x39",
                        A: "x41",
                        B: "x42",
                        C: "x43",
                        D: "x44",
                        E: "x45",
                        F: "x46",
                        a: "x61",
                        b: "x62",
                        c: "x63",
                        d: "x64",
                        e: "x65",
                        f: "x66",
                        n: "x6e",
                        r: "x72",
                        t: "x74",
                        u: "x75",
                        v: "x76",
                        x: "x78"
                    }, Vt = {"\\": "\\", "'": "'", "\n": "n", "\r": "r", "\u2028": "u2028", "\u2029": "u2029"},
                    Yt = e && !e.nodeType && e, Kt = t && !t.nodeType && t,
                    Qt = Yt && Kt && "object" == typeof o && o && o.Object && o,
                    Zt = Jt[typeof self] && self && self.Object && self,
                    te = Jt[typeof window] && window && window.Object && window, ee = Kt && Kt.exports === Yt && Yt,
                    ne = Qt || te !== (this && this.window) && te || Zt || this, re = E();
                Yt && Kt ? ee ? (Kt.exports = re)._ = re : Yt._ = re : ne._ = re
            }).call(o)
        }), s = function (t) {
            var e = t.qq, n = t.online, r = t.client, i = t.lang;
            if (!e) throw new Error("need qq");
            this.lang = i, this.scripts = a.filter([{type: "online", id: n}, {
                type: "client",
                id: r
            }], "id"), this.scripts = a.map(this.scripts, function (t) {
                return {id: "qd" + (e + t.id), type: t.type, src: "https://wp.qiye.qq.com/qidian/" + e + "/" + t.id}
            }), this.createTrggers(), this.loadScript(), this.captchEvent()
        };
    return s.prototype.createTrggers = function () {
        var t = function (t) {
            var n = document.createElement("span");
            return n.id = "webqq-" + t, e.appendChild(n), n
        }, e = document.createElement("div");
        e.style.position = "absolute", e.style.left = "-9999px", e.style.top = "-9999px", this.scripts = a.map(this.scripts, function (e) {
            return e.trigger = t(e.type), e
        }), document.body.appendChild(e)
    }, s.prototype.loadScript = function () {
        var t = this;
        a.each(this.scripts, function (e) {
            i(e.src, {async: !1, attrs: {id: e.id}}, function (e) {
                if (e) throw new Error("init qidian failed");
                t.lang && __WPA && __WPA.ready(function () {
                    __WPA.IM.set("qidian_lang", t.lang)
                })
            })
        })
    }, s.prototype.captchEvent = function () {
        var t = this, e = function (e) {
            var n = a.find(t.scripts, "type", e);
            n && n.trigger.click()
        }, n = function (t) {
            if (t && t !== document) {
                var e = t.getAttribute("data-qidian");
                return null != e ? t : n(t.parentNode)
            }
        };
        this.addEvent("click", function (t) {
            var r = n(t.target || t.srcElement);
            if (r) {
                var i = r.getAttribute("data-qidian");
                null != i && (setTimeout(function () {
                    e(i || "online")
                }, 0), t.preventDefault ? t.preventDefault() : t.returnValue = !1)
            }
        }, !1)
    }, s.prototype.addEvent = function (t, e) {
        document.addEventListener ? document.addEventListener(t, e, !1) : document.attachEvent("on" + t, e, !1)
    }, s.init = function (t) {
        return new s(t)
    }, s
});